summaryrefslogtreecommitdiff
path: root/src/tools/gftest/EqRel.hs
diff options
context:
space:
mode:
authorInari Listenmaa <inari.listenmaa@gmail.com>2018-06-15 14:31:21 +0200
committerInari Listenmaa <inari.listenmaa@gmail.com>2018-06-15 14:31:21 +0200
commit9d2b92dbc1d9e221ce180497cd7d04e0757650a9 (patch)
tree01ea74d4e1ba6a4cea565d263369da9b4947a4b0 /src/tools/gftest/EqRel.hs
parent2d9240e0365161cb97accb75ccace24eb431e07e (diff)
Split gftest to a new repo
Diffstat (limited to 'src/tools/gftest/EqRel.hs')
-rw-r--r--src/tools/gftest/EqRel.hs32
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 ]
-