41 int* nb_connected_comp,
Graph** graph_ptr)
74 int* nb_connected_comp,
Graph** graph_ptr)
76 vector<int> connect_list;
77 connect_list.reserve((*nconnect) * 2);
78 for (
int i(0) ; i < *nconnect ; ++i) {
79 connect_list.push_back(connection[2 * i]);
80 connect_list.push_back(connection[2 * i + 1]);
82 *graph_ptr =
new Graph (*npts, *nconnect, connect_list);
83 (*graph_ptr)->build_path();
84 *nb_connected_comp = (*graph_ptr)->getNbConnectedComponents();
85 vector<vector<int>> path = (*graph_ptr)->getPath();
91 for (
int i(0) ; i < (*graph_ptr)->getNbConnectedComponents() ; ++i) {
92 sizes[i] = (*graph_ptr)->getPath()[i].size();
100 for (
int iconnect(0) ; iconnect < (*graph_ptr)->getNbConnectedComponents() ; ++iconnect) {
101 for (
int ipt(0) ; ipt < (*graph_ptr)->getPath()[iconnect].size() ; ++ipt) {
102 path[i] = (*graph_ptr)->getPath()[iconnect][ipt];
112 *graph_ptr =
nullptr;
118 vector<bool> res((*graph_ptr)->build_cycle());
120 const int& nb_comp = (*graph_ptr)->getNbConnectedComponents();
122 for (
int iconnect(0) ; iconnect < nb_comp ; iconnect++) {
123 cycles[iconnect] = res[iconnect] ? 1 : 0;
130 for (
int i(0) ; i < (*graph_ptr)->getAdjList().size() ; ++i) {
131 nb_adj[i] = (*graph_ptr)->getAdjList().at(i).size();
139 for (
int i(0) ; i < (*graph_ptr)->getAdjList().size() ; ++i) {
140 for (
int j(0) ; j < (*graph_ptr)->getAdjList().at(i).size() ; ++j) {
141 adj[cpt] = (*graph_ptr)->getAdjList().at(i).at(j);
void graph_get_path_(Graph **, int *)
void graph_build_cycles_(Graph **, int *)
void _FCALL GRAPH_BUILD_CYCLES(Graph **graph_ptr, int *cycles)
void _FCALL GRAPH_BUILD_PATH(const int *npts, const int *nconnect, const int *connection, int *nb_connected_comp, Graph **graph_ptr)
void graph_build_path_(const int *, const int *, const int *, int *, Graph **)
void _FCALL GRAPH_GET_PATH(Graph **graph_ptr, int *path)
void graph_free_memory_(Graph **)
void _FCALL GRAPH_GET_NB_ADJ(Graph **graph_ptr, int *nb_adj)
void _FCALL GRAPH_GET_ADJ(Graph **graph_ptr, int *adj)
void _FCALL GRAPH_FREE_MEMORY(Graph **graph_ptr)
void graph_get_sizes_(Graph **, int *)
void _FCALL GRAPH_GET_SIZES(Graph **graph_ptr, int *sizes)
void graph_get_adj_(Graph **, int *)
void graph_get_nb_adj_(Graph **, int *)