diff options
author | Yann Herklotz <git@ymhg.org> | 2019-04-13 12:22:46 +0100 |
---|---|---|
committer | Yann Herklotz <git@ymhg.org> | 2019-04-13 12:22:46 +0100 |
commit | fabadfd1314ee5f1032a109a3182747d5bfecbb6 (patch) | |
tree | 1929aff825c7c92893f41b9a4f237696f4dea5bf /src/VeriFuzz/Circuit/Internal.hs | |
parent | b281cee59daa51ba4607229092274dfa2f801806 (diff) | |
parent | 7f32d8e4edd315ab4039432ca5b35c7eaa94f9ba (diff) | |
download | verismith-fabadfd1314ee5f1032a109a3182747d5bfecbb6.tar.gz verismith-fabadfd1314ee5f1032a109a3182747d5bfecbb6.zip |
Merge branch 'docs'
Diffstat (limited to 'src/VeriFuzz/Circuit/Internal.hs')
-rw-r--r-- | src/VeriFuzz/Circuit/Internal.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/VeriFuzz/Circuit/Internal.hs b/src/VeriFuzz/Circuit/Internal.hs index 8a4cf4a..3a7346f 100644 --- a/src/VeriFuzz/Circuit/Internal.hs +++ b/src/VeriFuzz/Circuit/Internal.hs @@ -23,12 +23,19 @@ import Data.Graph.Inductive (Graph, Node) import qualified Data.Graph.Inductive as G import qualified Data.Text as T +-- | Convert an integer into a label. +-- +-- >>> fromNode 5 +-- "w5" fromNode :: Int -> T.Text fromNode node = T.pack $ "w" <> show node +-- | General function which runs 'filter' over a graph. filterGr :: (Graph gr) => gr n e -> (Node -> Bool) -> [Node] filterGr graph f = filter f $ G.nodes graph +-- | Takes two functions that return an 'Int', and compares there results to 0 +-- and not 0 respectively. This result is returned. only :: (Graph gr) => gr n e @@ -38,8 +45,11 @@ only -> Bool only graph fun1 fun2 n = fun1 graph n == 0 && fun2 graph n /= 0 +-- | Returns all the input nodes to a graph, which means nodes that do not have +-- an input themselves. inputs :: (Graph gr) => gr n e -> [Node] inputs graph = filterGr graph $ only graph G.indeg G.outdeg +-- | Returns all the output nodes to a graph, similar to the 'inputs' function. outputs :: (Graph gr) => gr n e -> [Node] outputs graph = filterGr graph $ only graph G.outdeg G.indeg |