36 edge_t(
const int& nn1,
const int& nn2,
const int& eelem) {
98 std::vector<tab3_t> tab(nn);
99 for (
int i(0) ; i < nn ; ++i) {
100 tab.at(i).n1 = n1[i];
101 tab.at(i).n2 = n2[i];
102 tab.at(i).n3 = elem[i];
104 std::sort(tab.begin(), tab.end(), [] (
tab3_t ielem1,
tab3_t ielem2)
105 {return (ielem1.n1 < ielem2.n1);});
107 while (i < tab.size()) {
109 for ( ; (j < tab.size()) && (tab.at(i).n1 == tab.at(j).n1) ; j++) {}
111 std::vector<tab3_t>::iterator iter1 = tab.begin() + i;
112 std::vector<tab3_t>::iterator iter2 = tab.begin() + j;
113 std::sort(iter1, iter2, [] (
tab3_t ielem1,
tab3_t ielem2) {
return (ielem1.
n2 < ielem2.
n2);});
122 edge_list->push_back(
edge_t(tab.at(0).n1, tab.at(0).n2, tab.at(0).n3));
123 for (
int i(1) ; i < nn ; ++i) {
124 if (tab.at(i).n1 != (*(edge_list->end()-1)).n1 || tab.at(i).n2 != (*(edge_list->end()-1)).n2) {
125 edge_list->push_back(
edge_t(tab.at(i).n1, tab.at(i).n2, tab.at(i).n3));
127 (*(edge_list->end()-1)).elem_list.push_back(tab.at(i).n3);
131 for (
int i(0) ; i < edge_list->size() ; ++i) {
132 edge_list->at(i).nb_con = edge_list->at(i).elem_list.size();
135 *nedge = edge_list->size();
138 for (
int i(0) ; i < nn ; ++i) {
139 n1[i] = edge_list->at(i).n1;
140 n2[i] = edge_list->at(i).n2;
147 int nn = edge_list->size();
148 for (
int i(0) ; i < nn ; ++i) {
149 nb_conn[i] = edge_list->at(i).nb_con;
156 int nn = edge_list->size();
158 for (
int i(0) ; i < nn ; ++i) {
159 for (
int j(0) ; j < edge_list->at(i).elem_list.size(); ++j) {
160 elem[cpt] = edge_list->at(i).elem_list.at(j);
168 if (*edge_ptr !=
nullptr) {
180 (*tab_ptr)->push_back(*ii);
184 for (
int i(0) ; i < *
n ; ++i) {
185 (*tab_ptr)->push_back(tab[i]);
190 *ss = (*tab_ptr)->size();
194 int ss = (*tab_ptr)->size();
195 for (
int i(0) ; i < ss ; ++i) {
196 out[i] = (*tab_ptr)->at(i);
201 if ((*tab_ptr) !=
nullptr) {
203 (*tab_ptr) =
nullptr;
void _FCALL TAB1_GET_SIZE(tab1_t **tab1_ptr, int *ii)
void edge_get_nb_connect_(edge_list_t **, int *)
void _FCALL TAB1_FREE_MEMORY(tab1_t **tab1_ptr, int *ii)
void _FCALL TAB1_INIT(tab1_t **tab1_ptr)
void tab1_free_memory_(tab1_t **)
void edge_free_memory_(edge_list_t **)
vector< edge_t > edge_list_t
void _FCALL TAB1_APPEND_TAB(tab1_t **tab1_ptr, int *n, int *tab)
void _FCALL EDGE_GET_NB_CONNECT(edge_list_t **edge_ptr, int *nb_conn)
void _FCALL EDGE_GET_CONNECT(edge_list_t **edge_ptr, int *elem)
void edge_sort_(edge_list_t **, int *, int *, int *, int *)
void _FCALL EDGE_FREE_MEMORY(edge_list_t **edge_ptr)
void tab1_init_(tab1_t **)
void tab1_get_(tab1_t **, int *)
void _FCALL TAB1_GET(tab1_t **tab1_ptr, int *ii)
void tab1_get_size_(tab1_t **, int *)
void tab1_append_(tab1_t **, int *)
void _FCALL EDGE_SORT(edge_list_t **edge_ptr, int *n1, int *n2, int *elem, int *nedge)
void tab1_append_tab_(tab1_t **, int *, int *)
void edge_get_connect_(edge_list_t **, int *)
void _FCALL TAB1_APPEND(tab1_t **tab1_ptr, int *ii)
edge_t(const int &nn1, const int &nn2, const int &eelem)