-- GENERATED by C->Haskell Compiler, version 0.28.3 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "src/IGraph/Internal/Clique.chs" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module IGraph.Internal.Clique where
import qualified Foreign.C.Types as C2HSImp



import qualified Foreign.Marshal.Utils as C2HSImp
import qualified Foreign.Ptr as C2HSImp

import Foreign
import Foreign.C.Types

import IGraph.Internal.Graph
{-# LINE 10 "src/IGraph/Internal/Clique.chs" #-}

import IGraph.Internal.Data
{-# LINE 11 "src/IGraph/Internal/Clique.chs" #-}




igraphCliques :: (IGraph) -> (VectorPtr) -> (Int) -> (Int) -> IO ((Int))
igraphCliques a1 a2 a3 a4 =
  (withIGraph) a1 $ \a1' ->
  (withVectorPtr) a2 $ \a2' ->
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  igraphCliques'_ a1' a2' a3' a4' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 15 "src/IGraph/Internal/Clique.chs" #-}


igraphMaximalCliques :: (IGraph) -> (VectorPtr) -> (Int) -> (Int) -> IO ((Int))
igraphMaximalCliques a1 a2 a3 a4 =
  (withIGraph) a1 $ \a1' ->
  (withVectorPtr) a2 $ \a2' ->
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  igraphMaximalCliques'_ a1' a2' a3' a4' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 17 "src/IGraph/Internal/Clique.chs" #-}


foreign import ccall safe "IGraph/Internal/Clique.chs.h igraph_cliques"
  igraphCliques'_ :: ((C2HSImp.Ptr (IGraph)) -> ((C2HSImp.Ptr (VectorPtr)) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))

foreign import ccall safe "IGraph/Internal/Clique.chs.h igraph_maximal_cliques"
  igraphMaximalCliques'_ :: ((C2HSImp.Ptr (IGraph)) -> ((C2HSImp.Ptr (VectorPtr)) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))