12 std::vector<unsigned int *> &allRevNodeCorr,
13 std::vector<unsigned int *> &allRevNodeCorrPrime,
14 std::vector<unsigned int> &allRevNodeCorrSize,
15 std::vector<unsigned int> &allRevNodeCorrPrimeSize) {
16#ifndef TTK_ENABLE_TORCH
23 printErr(
"This module requires Torch.");
27 for(
unsigned int i = 0; i < originsPrimeTrees.size(); ++i) {
28 bool const useMinMax =
true;
29 bool const cleanTree =
false;
31 std::vector<int> nodeCorr;
41 allRevNodeCorr, allRevNodeCorrSize);
42 mergeTreesToTorchTrees(originsPrimeTrees, originsPrimeCopy_,
44 allRevNodeCorrPrimeSize);
46 for(
unsigned int l = 0; l < layers_.size(); ++l) {
47 layers_[l].setOrigin(originsCopy_[l]);
48 layers_[l].setVSTensor(vSTensorCopy_[l]);
49 layers_[l].setOriginPrime(originsPrimeCopy_[l]);
50 layers_[l].setVSPrimeTensor(vSPrimeTensorCopy_[l]);
55 passLayerParameters(layers_[l]);
59 if(allAlphas_[0].size() != originsPrimeCopy_.size()) {
63 allAlphas_[i][0].data_ptr<float>(),
64 allAlphas_[i][0].data_ptr<float>() + allAlphas_[i][0].numel());
68 recs_.resize(allAlphas_.size());
69 for(
unsigned int i = 0; i < recs_.size(); ++i) {
70 recs_[i].resize(allAlphas_[i].size());
71 for(
unsigned int l = 0; l < allAlphas_[i].size(); ++l) {
73 = (
activate_ ? activation(allAlphas_[i][l]) : allAlphas_[i][l]);
74 layers_[l].getMultiInterpolation(layers_[l].getOriginPrime(),
75 layers_[l].getVSPrimeTensor(), act,
82 for(
unsigned int l = 0; l < originsCopy_.size(); ++l) {
87 for(
unsigned int j = 0; j < recs_[0].size(); ++j) {
88 for(
unsigned int i = 0; i < recs_.size(); ++i) {
89 fixTreePrecisionScalars(recs_[i][j].mTree);
void execute(std::vector< ttk::ftm::MergeTree< float > > &originsTrees, std::vector< ttk::ftm::MergeTree< float > > &originsPrimeTrees, std::vector< unsigned int * > &allRevNodeCorr, std::vector< unsigned int * > &allRevNodeCorrPrime, std::vector< unsigned int > &allRevNodeCorrSize, std::vector< unsigned int > &allRevNodeCorrPrimeSize)
void preprocessingPipeline(ftm::MergeTree< dataType > &mTree, double epsilonTree, double epsilon2Tree, double epsilon3Tree, bool branchDecompositionT, bool useMinMaxPairT, bool cleanTreeT, double persistenceThreshold, std::vector< int > &nodeCorr, bool deleteInconsistentNodes=true)