packages feed

haskell-igraph-0.8.5: cbits/haskell_attributes.h

#ifndef HASKELL_IGRAPH_ATTRIBUTE
#define HASKELL_IGRAPH_ATTRIBUTE

#include "igraph.h"
#include "bytestring.h"

#include <string.h>

igraph_bool_t igraph_haskell_attribute_find(const igraph_vector_ptr_t *ptrvec,
				       const char *name, long int *idx);

typedef struct igraph_haskell_attributes_t {
  igraph_vector_ptr_t gal;
  igraph_vector_ptr_t val;
  igraph_vector_ptr_t eal;
} igraph_haskell_attributes_t;

int igraph_haskell_attributes_copy_attribute_record(igraph_attribute_record_t **newrec,
					       const igraph_attribute_record_t *rec);


int igraph_haskell_attribute_init(igraph_t *graph, igraph_vector_ptr_t *attr);

void igraph_haskell_attribute_destroy(igraph_t *graph);

void igraph_haskell_attribute_copy_free(igraph_haskell_attributes_t *attr);

int igraph_haskell_attribute_copy(igraph_t *to, const igraph_t *from,
			     igraph_bool_t ga, igraph_bool_t va, igraph_bool_t ea);

int igraph_haskell_attribute_add_vertices(igraph_t *graph, long int nv,
				     igraph_vector_ptr_t *nattr);

void igraph_haskell_attribute_permute_free(igraph_vector_ptr_t *v);

int igraph_haskell_attribute_permute_vertices(const igraph_t *graph,
					 igraph_t *newgraph,
					 const igraph_vector_t *idx);

int igraph_haskell_attribute_combine_vertices(const igraph_t *graph,
			 igraph_t *newgraph,
			 const igraph_vector_ptr_t *merges,
			 const igraph_attribute_combination_t *comb);

int igraph_haskell_attribute_add_edges(igraph_t *graph, const igraph_vector_t *edges,
				 igraph_vector_ptr_t *nattr);

int igraph_haskell_attribute_permute_edges(const igraph_t *graph,
				      igraph_t *newgraph,
				      const igraph_vector_t *idx);

int igraph_haskell_attribute_combine_edges(const igraph_t *graph,
			 igraph_t *newgraph,
			 const igraph_vector_ptr_t *merges,
			 const igraph_attribute_combination_t *comb);

int igraph_haskell_attribute_get_info(const igraph_t *graph,
				 igraph_strvector_t *gnames,
				 igraph_vector_t *gtypes,
				 igraph_strvector_t *vnames,
				 igraph_vector_t *vtypes,
				 igraph_strvector_t *enames,
				 igraph_vector_t *etypes);

igraph_bool_t igraph_haskell_attribute_has_attr(const igraph_t *graph,
					 igraph_attribute_elemtype_t type,
					 const char *name);

int igraph_haskell_attribute_gettype(const igraph_t *graph,
			      igraph_attribute_type_t *type,
			      igraph_attribute_elemtype_t elemtype,
			      const char *name);

int igraph_haskell_attribute_get_numeric_graph_attr(const igraph_t *graph,
					      const char *name,
					      igraph_vector_t *value);

int igraph_haskell_attribute_get_bool_graph_attr(const igraph_t *graph,
					    const char *name,
					    igraph_vector_bool_t *value);

int igraph_haskell_attribute_get_string_graph_attr(const igraph_t *graph,
					     const char *name,
					     igraph_strvector_t *value_);

int igraph_haskell_attribute_get_numeric_vertex_attr(const igraph_t *graph,
					      const char *name,
					      igraph_vs_t vs,
					      igraph_vector_t *value);

int igraph_haskell_attribute_get_bool_vertex_attr(const igraph_t *graph,
					     const char *name,
					     igraph_vs_t vs,
					     igraph_vector_bool_t *value);

int igraph_haskell_attribute_get_string_vertex_attr(const igraph_t *graph,
					     const char *name,
					     igraph_vs_t vs,
					     igraph_strvector_t *value_);

int igraph_haskell_attribute_get_numeric_edge_attr(const igraph_t *graph,
					    const char *name,
					    igraph_es_t es,
					    igraph_vector_t *value);

int igraph_haskell_attribute_get_string_edge_attr(const igraph_t *graph,
					   const char *name,
					   igraph_es_t es,
					   igraph_strvector_t *value_);

int igraph_haskell_attribute_get_bool_edge_attr(const igraph_t *graph,
					   const char *name,
					   igraph_es_t es,
					   igraph_vector_bool_t *value);

igraph_real_t igraph_haskell_attribute_GAN(const igraph_t *graph, const char *name);

igraph_bool_t igraph_haskell_attribute_GAB(const igraph_t *graph, const char *name);

const bytestring_t* igraph_haskell_attribute_GAS(const igraph_t *graph, const char *name);

igraph_real_t igraph_haskell_attribute_VAN(const igraph_t *graph, const char *name,
				      igraph_integer_t vid);

igraph_bool_t igraph_haskell_attribute_VAB(const igraph_t *graph, const char *name,
				    igraph_integer_t vid);

const bytestring_t* igraph_haskell_attribute_VAS(const igraph_t *graph, const char *name,
				    igraph_integer_t vid);

igraph_real_t igraph_haskell_attribute_EAN(const igraph_t *graph, const char *name,
				      igraph_integer_t eid);

igraph_bool_t igraph_haskell_attribute_EAB(const igraph_t *graph, const char *name,
				    igraph_integer_t eid);

const bytestring_t* igraph_haskell_attribute_EAS(const igraph_t *graph, const char *name,
				    igraph_integer_t eid);

int igraph_haskell_attribute_VANV(const igraph_t *graph, const char *name,
			   igraph_vs_t vids, igraph_vector_t *result);

int igraph_haskell_attribute_VABV(const igraph_t *graph, const char *name,
			   igraph_vs_t vids, igraph_vector_bool_t *result);

int igraph_haskell_attribute_EANV(const igraph_t *graph, const char *name,
			   igraph_es_t eids, igraph_vector_t *result);

int igraph_haskell_attribute_EABV(const igraph_t *graph, const char *name,
			   igraph_es_t eids, igraph_vector_bool_t *result);

int igraph_haskell_attribute_VASV(const igraph_t *graph, const char *name,
			   igraph_vs_t vids, igraph_strvector_t *result);

int igraph_haskell_attribute_EASV(const igraph_t *graph, const char *name,
			   igraph_es_t eids, igraph_strvector_t *result);

int igraph_haskell_attribute_list(const igraph_t *graph,
			   igraph_strvector_t *gnames, igraph_vector_t *gtypes,
			   igraph_strvector_t *vnames, igraph_vector_t *vtypes,
			   igraph_strvector_t *enames, igraph_vector_t *etypes);

int igraph_haskell_attribute_GAN_set(igraph_t *graph, const char *name,
			      igraph_real_t value);

int igraph_haskell_attribute_GAB_set(igraph_t *graph, const char *name,
			      igraph_bool_t value);

int igraph_haskell_attribute_GAS_set(igraph_t *graph, const char *name,
			      const bytestring_t *value);

int igraph_haskell_attribute_VAN_set(igraph_t *graph, const char *name,
			      igraph_integer_t vid, igraph_real_t value);

int igraph_haskell_attribute_VAB_set(igraph_t *graph, const char *name,
			      igraph_integer_t vid, igraph_bool_t value);

int igraph_haskell_attribute_VAS_set(igraph_t *graph, const char *name,
			      igraph_integer_t vid, const bytestring_t *value);

int igraph_haskell_attribute_EAN_set(igraph_t *graph, const char *name,
			      igraph_integer_t eid, igraph_real_t value);

int igraph_haskell_attribute_EAB_set(igraph_t *graph, const char *name,
			      igraph_integer_t eid, igraph_bool_t value);

int igraph_haskell_attribute_EAS_set(igraph_t *graph, const char *name,
			      igraph_integer_t eid, const bytestring_t *value);

int igraph_haskell_attribute_VAN_setv(igraph_t *graph, const char *name,
			       const igraph_vector_t *v);

int igraph_haskell_attribute_VAB_setv(igraph_t *graph, const char *name,
			       const igraph_vector_bool_t *v);

int igraph_haskell_attribute_VAS_setv(igraph_t *graph, const char *name,
			       const bsvector_t *sv);

int igraph_haskell_attribute_EAN_setv(igraph_t *graph, const char *name,
			       const igraph_vector_t *v);

int igraph_haskell_attribute_EAB_setv(igraph_t *graph, const char *name,
			       const igraph_vector_bool_t *v);

int igraph_haskell_attribute_EAS_setv(igraph_t *graph, const char *name,
			       const bsvector_t *sv);

void igraph_haskell_attribute_free_rec(igraph_attribute_record_t *rec);

void igraph_haskell_attribute_remove_g(igraph_t *graph, const char *name);

void igraph_haskell_attribute_remove_v(igraph_t *graph, const char *name);

void igraph_haskell_attribute_remove_e(igraph_t *graph, const char *name);

void igraph_haskell_attribute_remove_all(igraph_t *graph, igraph_bool_t g,
				  igraph_bool_t v, igraph_bool_t e);
#endif