/** * \ingroup python_interface_edgeseq * \brief Returns the length of the sequence (i.e. the number of edges in the graph) */ int igraphmodule_EdgeSeq_sq_length(igraphmodule_EdgeSeqObject* self) { igraph_t *g; igraph_integer_t result; g=&GET_GRAPH(self); if (igraph_es_size(g, &self->es, &result)) { igraphmodule_handle_igraph_error(); return -1; } return (int)result; }
int main() { igraph_t g; long int i; igraph_integer_t size; /* DIRECTED */ igraph_star(&g, 10, IGRAPH_STAR_OUT, 0); for (i=0; i<100; i++) { igraph_es_t es; igraph_eit_t it; igraph_es_pairs_small(&es, IGRAPH_DIRECTED, 0,1,0,2,0,5,0,2,0,3,0,4,0,7,0,9, -1); igraph_eit_create(&g, es, &it); igraph_es_size(&g, &es, &size); IGRAPH_EIT_RESET(it); while (!IGRAPH_EIT_END(it)) { IGRAPH_EIT_GET(it); IGRAPH_EIT_NEXT(it); size--; } if (size != 0) return 1; igraph_eit_destroy(&it); igraph_es_destroy(&es); } igraph_destroy(&g); /* UNDIRECTED */ igraph_star(&g, 10, IGRAPH_STAR_UNDIRECTED, 0); for (i=0; i<100; i++) { igraph_es_t es; igraph_eit_t it; igraph_es_pairs_small(&es, IGRAPH_DIRECTED, 0,1,2,0,5,0,0,2,3,0,0,4,7,0,0,9, -1); igraph_eit_create(&g, es, &it); IGRAPH_EIT_RESET(it); while (!IGRAPH_EIT_END(it)) { IGRAPH_EIT_GET(it); IGRAPH_EIT_NEXT(it); } igraph_eit_destroy(&it); igraph_es_destroy(&es); } igraph_destroy(&g); return 0; }
int EdgeSelector::size(const Graph &graph) const noexcept { int result; SafeCall(igraph_es_size(graph.ptr(), ptr(), &result)); return result; }