packages feed

haskell-igraph-0.1.0: src/IGraph/Internal/Structure.chs

{-# LANGUAGE ForeignFunctionInterface #-}
module IGraph.Internal.Structure where

import Foreign
import Foreign.C.Types

{#import IGraph.Internal.Graph #}
{#import IGraph.Internal.Selector #}
{#import IGraph.Internal.Constants #}
{#import IGraph.Internal.Data #}
{#import IGraph.Internal.Arpack #}

#include "igraph/igraph.h"

{#fun igraph_induced_subgraph as ^ { `IGraphPtr'
                                   , id `Ptr (IGraphPtr)'
                                   , %`IGraphVsPtr'
                                   , `SubgraphImplementation' } -> `Int' #}

{#fun igraph_closeness as ^ { `IGraphPtr'
                            , `VectorPtr'
                            , %`IGraphVsPtr'
                            , `Neimode'
                            , `VectorPtr'
                            , `Bool' } -> `Int' #}

{#fun igraph_betweenness as ^ { `IGraphPtr'
                              , `VectorPtr'
                              , %`IGraphVsPtr'
                              , `Bool'
                              , `VectorPtr'
                              , `Bool' } -> `Int' #}

{#fun igraph_eigenvector_centrality as ^ { `IGraphPtr'
                                         , `VectorPtr'
                                         , id `Ptr CDouble'
                                         , `Bool'
                                         , `Bool'
                                         , `VectorPtr'
                                         , `ArpackOptPtr' } -> `Int' #}

{#fun igraph_pagerank as ^ { `IGraphPtr'
                           , `PagerankAlgo'
                           , `VectorPtr'
                           , id `Ptr CDouble'
                           , %`IGraphVsPtr'
                           , `Bool'
                           , `Double'
                           , `VectorPtr'
                           , id `Ptr ()' } -> `Int' #}

{#fun igraph_personalized_pagerank as ^ { `IGraphPtr'
                                        , `PagerankAlgo'
                                        , `VectorPtr'
                                        , id `Ptr CDouble'
                                        , %`IGraphVsPtr'
                                        , `Bool'
                                        , `Double'
                                        , `VectorPtr'
                                        , `VectorPtr'
                                        , id `Ptr ()' } -> `Int' #}