module IGraph.Clique
( cliques
, maximalCliques
) where
import Control.Applicative ((<$>))
import System.IO.Unsafe (unsafePerformIO)
import IGraph
import IGraph.Internal.Clique
import IGraph.Internal.Data
cliques :: LGraph d v e
-> (Int, Int)
-> [[Int]]
cliques gr (lo, hi) = unsafePerformIO $ do
vpptr <- igraphVectorPtrNew 0
_ <- igraphCliques (_graph gr) vpptr lo hi
(map.map) truncate <$> toLists vpptr
maximalCliques :: LGraph d v e
-> (Int, Int)
-> [[Int]]
maximalCliques gr (lo, hi) = unsafePerformIO $ do
vpptr <- igraphVectorPtrNew 0
_ <- igraphMaximalCliques (_graph gr) vpptr lo hi
(map.map) truncate <$> toLists vpptr