121 std::vector<std::tuple<double, int, int, int, int>> &coefs,
123 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>
129 for(
unsigned int i = 0; i < mTrees.size(); ++i) {
130 preprocessingPipeline<dataType>(
134 printTreesStats<dataType>(mTrees);
140 while(cpt < coefs.size()) {
141 while(cpt < coefs.size() and std::get<2>(coefs[cpt]) <= index) {
142 double const alpha = std::get<0>(coefs[cpt]);
143 int const index1 = std::get<1>(coefs[cpt]);
144 int const index2 = std::get<2>(coefs[cpt]);
146 mTrees[index1], mTrees[index2], alpha);
147 allMT.push_back(tree);
149 = computeDistance<dataType>(mTrees[index1], tree);
151 = computeDistance<dataType>(tree, mTrees[index2]);
154 allMT.push_back(mTrees[index]);
158 allMatching = std::vector<
159 std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>(allMT.size()
162 for(
unsigned int i = 0; i < allMT.size() - 1; ++i)
164 = computeDistance<dataType>(allMT[i], allMT[i + 1], allMatching[i]);
167 for(
unsigned int i = 0; i < allMT.size(); ++i)
168 postprocessingPipeline<dataType>(&(allMT[i].tree));
169 for(
unsigned int i = 0; i < mTrees.size(); ++i)
170 postprocessingPipeline<dataType>(&(mTrees[i].tree));
173 std::stringstream ss, ss2, ss3;
174 ss <<
"input size = " << mTrees.size();
176 ss2 <<
"output size = " << allMT.size();
178 ss3 <<
"reconstructed : " << allMT.size() - mTrees.size();