diff options
| author | odanoburu <bcclaro@gmail.com> | 2018-06-20 12:33:05 -0300 |
|---|---|---|
| committer | odanoburu <bcclaro@gmail.com> | 2018-06-20 12:33:05 -0300 |
| commit | f0672679535e59c53ed68729bbb5a201ce507b02 (patch) | |
| tree | 839216d85c207fc4d8fc0565466899ff4a41d5b1 /src/tools/gftest/EqRel.hs | |
| parent | 8b05ed9469a970590e1b11cc4e83320d8b94e846 (diff) | |
| parent | 427f8d84788fc3757fb4dacda931c878bf253fa1 (diff) | |
Merge remote-tracking branch 'upstream/master' into por
Diffstat (limited to 'src/tools/gftest/EqRel.hs')
| -rw-r--r-- | src/tools/gftest/EqRel.hs | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/tools/gftest/EqRel.hs b/src/tools/gftest/EqRel.hs deleted file mode 100644 index 823900ae0..000000000 --- a/src/tools/gftest/EqRel.hs +++ /dev/null @@ -1,32 +0,0 @@ -module EqRel where - -import qualified Data.Map as M -import Data.List ( sort ) - -data EqRel a = Top | Classes [[a]] deriving (Eq,Ord,Show) - -(/\) :: (Ord a) => EqRel a -> EqRel a -> EqRel a -Top /\ r = r -r /\ Top = r -Classes xss /\ Classes yss = Classes $ sort $ map sort $ concat -- maybe throw away singleton lists? - [ M.elems tabXs - | xs <- xss - , let tabXs = M.fromListWith (++) - [ (tabYs M.! x, [x]) - | x <- xs ] - ] - - where - tabYs = M.fromList [ (y,representative) - | ys <- yss - , let representative = head ys - , y <- ys ] - -basic :: (Ord a) => [a] -> EqRel Int -basic xs = Classes $ sort $ map sort $ M.elems $ M.fromListWith (++) - [ (x,[i]) | (x,i) <- zip xs [0..] ] - -rep :: EqRel Int -> Int -> Int -rep Top j = 0 -rep (Classes xss) j = head [ head xs | xs <- xss, j `elem` xs ] - |
