TTK
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
ttk::MergeTreePrincipalGeodesicsDecoding Class Reference

#include <MergeTreePrincipalGeodesicsDecoding.h>

Inheritance diagram for ttk::MergeTreePrincipalGeodesicsDecoding:
ttk::Debug ttk::MergeTreePrincipalGeodesicsBase ttk::BaseClass ttk::Debug ttk::MergeTreeAxesAlgorithmBase ttk::BaseClass ttk::Debug ttk::MergeTreeBase ttk::BaseClass ttk::Debug ttk::BaseClass ttkMergeTreePrincipalGeodesicsDecoding

Public Member Functions

 MergeTreePrincipalGeodesicsDecoding ()
 
template<class dataType >
void preprocessBarycenter (ftm::MergeTree< dataType > &barycenter)
 
template<class dataType >
void processInputTrees (std::vector< ttk::ftm::MergeTree< dataType > > &inputTrees)
 
template<class dataType >
void getGeodesicsMiddle (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< double * > > &vS, std::vector< std::vector< double * > > &v2s, size_t vSize, std::array< double, 2 > &middle)
 
template<class dataType >
void computeGeodesicsDistance (std::vector< ttk::ftm::MergeTree< dataType > > &barycenters)
 
template<class dataType >
void reconstruction (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &inputTrees, std::vector< ftm::MergeTree< dataType > > &reconstructedTrees, std::vector< double > &reconstructionErrors, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &recInputMatchings, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &recBaryMatchings, bool isSecondInput=false)
 
template<class dataType >
void constructGeodesicsTrees (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< ftm::MergeTree< dataType > > > &geodesicsTrees, bool isSecondInput=false)
 
template<class dataType >
void constructGeodesicsEllipses (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &geodesicsEllipses, bool isSecondInput=false)
 
unsigned int getNumberOfRectangles (unsigned int rectangleMultiplier=1)
 
template<class dataType >
void constructGeodesicsRectangle (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &geodesicsRectangle, unsigned int rectangleMultiplier=1, bool isSecondInput=false)
 
template<class dataType >
void constructGeodesicsSurface (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &geodesicsSurface, bool isSecondInput=false)
 
- Public Member Functions inherited from ttk::Debug
 Debug ()
 
 ~Debug () override
 
virtual int setDebugLevel (const int &debugLevel)
 
int setWrapper (const Wrapper *wrapper) override
 
int printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
void setDebugMsgPrefix (const std::string &prefix)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 
virtual int setWrapper (const Wrapper *wrapper)
 
- Public Member Functions inherited from ttk::MergeTreePrincipalGeodesicsBase
 MergeTreePrincipalGeodesicsBase ()
 
template<class dataType >
dataType computeReconstructionError (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &inputTrees, std::vector< std::vector< double * > > &vS, std::vector< std::vector< double * > > &v2s, size_t vSize, std::vector< std::vector< double > > &allTreesTs, std::vector< double > &reconstructionErrors, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &matchings, bool transposeVector=true)
 
template<class dataType >
dataType computeReconstructionError (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &inputTrees, std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< std::vector< double > > > &v2s, std::vector< std::vector< double > > &allTreesTs, std::vector< double > &reconstructionErrors)
 
template<class dataType >
dataType computeReconstructionError (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &inputTrees, std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< std::vector< double > > > &v2s, std::vector< std::vector< double > > &allTreesTs)
 
double getGeodesicVectorMiddle (std::vector< double > &v, std::vector< double > &v2)
 
double getAdjustedTMax (double tMin, double m)
 
double getAdjustedTMin (double tMax, double m)
 
void updateT (double newT, double m, double &tMin, double &tMax, bool updateTMin)
 
template<class dataType >
bool adjustDiagonalT (dataType baryBirth, dataType baryDeath, ftm::idNode node, std::vector< std::vector< double > > &vNew, std::vector< std::vector< double > > &v2New, double &tMin, double &tMax)
 
template<class dataType >
bool adjustNestingT (ftm::MergeTree< dataType > &ttkNotUsed(barycenter), dataType baryBirth, dataType baryDeath, ftm::idNode node, std::vector< std::vector< double > > &vNew, std::vector< std::vector< double > > &v2New, double &tMin, double &tMax)
 
template<class dataType >
void getInterpolationVectorDebugMsg (dataType birth, dataType death, std::vector< std::vector< double > > &vNew, std::vector< std::vector< double > > &v2New, int i, double t, double tMin, double tMax, const std::string &msg, std::stringstream &ssT)
 
template<class dataType >
double getTNew (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< double > > &v, std::vector< std::vector< double > > &v2, int i, double t)
 
template<class dataType >
void getInterpolationVector (ftm::MergeTree< dataType > &barycenter, std::vector< double * > &v, std::vector< double * > &v2, size_t vSize, double t, std::vector< dataType > &interpolationVectorT, bool transposeVector)
 
template<class dataType >
void getInterpolation (ftm::MergeTree< dataType > &barycenter, std::vector< double * > &v, std::vector< double * > &v2, size_t vSize, double t, ftm::MergeTree< dataType > &interpolated, bool transposeVector=true)
 
template<class dataType >
void getInterpolation (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< double > > &v, std::vector< std::vector< double > > &v2, double t, ftm::MergeTree< dataType > &interpolated)
 
template<class dataType >
void getMultiInterpolation (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< double * > > &vS, std::vector< std::vector< double * > > &v2s, size_t vSize, std::vector< double > &ts, ftm::MergeTree< dataType > &interpolated, bool transposeVector=true)
 
template<class dataType >
void getMultiInterpolation (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< std::vector< double > > > &v2s, std::vector< double > &ts, ftm::MergeTree< dataType > &interpolated)
 
template<class dataType >
void getMultiInterpolation (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< std::vector< double > > > &v2s, std::vector< std::vector< double > > &v, std::vector< std::vector< double > > &v2, std::vector< double > &ts, double t, ftm::MergeTree< dataType > &interpolated)
 
void callGramSchmidt (std::vector< std::vector< double > > &vS, std::vector< double > &v, std::vector< double > &newV)
 
void vectorToPointer (std::vector< double > &vec, double *&pVec)
 
void vectorsToPointers (std::vector< std::vector< double > > &vec, std::vector< double * > &pVec)
 
void vectorOfVectorsToPointers (std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< double * > > &pVS)
 
void pointerToVector (double *pVec, size_t size, std::vector< double > &vec)
 
void pointersToVectors (std::vector< double * > &pVec, std::vector< size_t > sizes, std::vector< std::vector< double > > &vec)
 
void pointersToVectors (std::vector< double * > &pVec, size_t size, std::vector< std::vector< double > > &vec)
 
- Public Member Functions inherited from ttk::MergeTreeAxesAlgorithmBase
 MergeTreeAxesAlgorithmBase ()
 
template<class dataType >
void computeOneDistance (ftm::MergeTree< dataType > &tree1, ftm::MergeTree< dataType > &tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &matching, dataType &distance, bool isCalled=false, bool useDoubleInput=false, bool isFirstInput=true)
 
template<class dataType >
void computeOneDistance (ftm::MergeTree< dataType > &tree1, ftm::MergeTree< dataType > &tree2, dataType &distance, bool isCalled=false, bool useDoubleInput=false, bool isFirstInput=true)
 
template<class dataType >
void initVectorFromMatching (ftm::MergeTree< dataType > &barycenter, ftm::MergeTree< dataType > &tree, std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &matching, std::vector< std::vector< double > > &v)
 
template<class dataType >
void initRandomVector (ftm::MergeTree< dataType > &barycenter, std::vector< std::vector< double > > &v, std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< std::vector< double > > > &v2s)
 
template<class dataType , typename F >
int initVectors (int geodesicNumber, ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &trees, ftm::MergeTree< dataType > &barycenter2, std::vector< ftm::MergeTree< dataType > > &trees2, std::vector< std::vector< double > > &v1, std::vector< std::vector< double > > &v2, std::vector< std::vector< double > > &trees2V1, std::vector< std::vector< double > > &trees2V2, int newVectorOffset, std::vector< double > &inputToOriginDistances, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &baryMatchings, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &baryMatchings2, std::vector< std::vector< double > > &inputToGeodesicsDistances, std::vector< std::vector< std::vector< double > > > &vS, std::vector< std::vector< std::vector< double > > > &v2s, std::vector< std::vector< std::vector< double > > > &trees2Vs, std::vector< std::vector< std::vector< double > > > &trees2V2s, bool projectInitializedVectors, F initializedVectorsProjection)
 
template<class dataType >
void computeOneBarycenter (std::vector< ftm::MergeTree< dataType > > &trees, ftm::MergeTree< dataType > &baryMergeTree, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &matchings, std::vector< double > &finalDistances, double barycenterSizeLimitPercent, unsigned int barycenterMaximumNumberOfPairs, bool useDoubleInput=false, bool isFirstInput=true)
 
template<class dataType >
void computeOneBarycenter (std::vector< ftm::MergeTree< dataType > > &trees, ftm::MergeTree< dataType > &baryMergeTree, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &matchings, std::vector< double > &finalDistances, double barycenterSizeLimitPercent, bool useDoubleInput=false, bool isFirstInput=true)
 
template<class dataType >
void computeOneBarycenter (std::vector< ftm::MergeTree< dataType > > &trees, ftm::MergeTree< dataType > &baryMergeTree, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &matchings, std::vector< double > &finalDistances, bool useDoubleInput=false, bool isFirstInput=true)
 
template<class dataType >
void computeOneBarycenter (std::vector< ftm::MergeTree< dataType > > &trees, ftm::MergeTree< dataType > &baryMergeTree, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &matchings)
 
template<class dataType >
void computeOneBarycenter (std::vector< ftm::MergeTree< dataType > > &trees, ftm::MergeTree< dataType > &baryMergeTree)
 
template<class dataType >
void preprocessingTrees (std::vector< ftm::MergeTree< dataType > > &trees, std::vector< std::vector< int > > &nodeCorr, bool useMinMaxPairT=true)
 
template<class dataType >
void preprocessingTrees (std::vector< ftm::MergeTree< dataType > > &trees, bool useMinMaxPairT=true)
 
template<class dataType >
void getMatchingVector (ftm::MergeTree< dataType > &barycenter, ftm::MergeTree< dataType > &tree, std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &matchings, std::vector< ftm::idNode > &matchingVector)
 
template<class dataType >
void getInverseMatchingVector (ftm::MergeTree< dataType > &barycenter, ftm::MergeTree< dataType > &tree, std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &matchings, std::vector< ftm::idNode > &matchingVector)
 
template<class dataType >
void getMatchingMatrix (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &trees, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &matchings, std::vector< std::vector< ftm::idNode > > &matchingMatrix)
 
template<class dataType >
std::tuple< dataType, dataType > getParametrizedBirthDeath (ftm::FTMTree_MT *tree, ftm::idNode node)
 
template<class dataType >
void computeBranchesCorrelationMatrix (ftm::MergeTree< dataType > &barycenter, std::vector< ftm::MergeTree< dataType > > &trees, std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &baryMatchings, std::vector< std::vector< double > > &allTs, std::vector< std::vector< double > > &branchesCorrelationMatrix, std::vector< std::vector< double > > &persCorrelationMatrix)
 
void zeroPadding (std::string &colName, const size_t numberCols, const size_t colIdx)
 
std::string getTableCoefficientName (int noGeodesics, int geodesicNum)
 
std::string getTableCoefficientNormName (int noGeodesics, int geodesicNum)
 
std::string getTableVectorName (int noGeodesics, int geodesicNum, int vId, int vComp, bool isSecondInput=false)
 
std::string getTableCorrelationName (int noGeodesics, int geodesicNum)
 
std::string getTableCorrelationPersName (int noGeodesics, int geodesicNum)
 
std::string getTableCorrelationTreeName (int noTrees, int treeNum)
 
- Public Member Functions inherited from ttk::MergeTreeBase
 MergeTreeBase ()
 
void setAssignmentSolver (int assignmentSolver)
 
void setEpsilon1UseFarthestSaddle (bool b)
 
void setEpsilonTree1 (double epsilon)
 
void setEpsilonTree2 (double epsilon)
 
void setEpsilon2Tree1 (double epsilon)
 
void setEpsilon2Tree2 (double epsilon)
 
void setEpsilon3Tree1 (double epsilon)
 
void setEpsilon3Tree2 (double epsilon)
 
void setPersistenceThreshold (double pt)
 
void setParallelize (bool para)
 
void setNodePerTask (int npt)
 
void setBranchDecomposition (bool useBD)
 
void setNormalizedWasserstein (bool normalizedWasserstein)
 
void setKeepSubtree (bool keepSubtree)
 
void setBarycenterMergeTree (bool imt)
 
void setDistanceSquaredRoot (bool distanceSquaredRoot)
 
void setUseMinMaxPair (bool useMinMaxPair)
 
void setDeleteMultiPersPairs (bool deleteMultiPersPairsT)
 
void setCleanTree (bool clean)
 
void setIsPersistenceDiagram (bool isPD)
 
std::vector< std::vector< int > > getTreesNodeCorr ()
 
double mixDistancesMinMaxPairWeight (bool isFirstInput)
 
double mixDistancesWeight (bool isFirstInput)
 
template<class dataType >
double mixDistances (dataType distance1, dataType distance2)
 
template<class dataType >
void mixDistancesMatrix (std::vector< std::vector< dataType > > &distanceMatrix, std::vector< std::vector< dataType > > &distanceMatrix2)
 
template<class dataType >
void mergeSaddle (ftm::FTMTree_MT *tree, double epsilon, std::vector< std::vector< ftm::idNode > > &treeNodeMerged, bool mergeByPersistence=false)
 
template<class dataType >
void persistenceMerging (ftm::FTMTree_MT *tree, double epsilon2, double epsilon3=100)
 
template<class dataType >
void keepMostImportantPairs (ftm::FTMTree_MT *tree, int n, bool useBD)
 
template<class dataType >
void persistenceThresholding (ftm::FTMTree_MT *tree, double persistenceThresholdT, std::vector< ftm::idNode > &deletedNodes)
 
template<class dataType >
void persistenceThresholding (ftm::FTMTree_MT *tree, std::vector< ftm::idNode > &deletedNodes)
 
template<class dataType >
void persistenceThresholding (ftm::FTMTree_MT *tree, double persistenceThresholdT)
 
template<class dataType >
void persistenceThresholding (ftm::FTMTree_MT *tree)
 
template<class dataType >
void verifyOrigins (ftm::FTMTree_MT *tree)
 
template<class dataType >
void preprocessTree (ftm::FTMTree_MT *tree, bool deleteInconsistentNodes=true)
 
template<class dataType >
ftm::FTMTree_MTcomputeBranchDecomposition (ftm::FTMTree_MT *tree, std::vector< std::vector< ftm::idNode > > &treeNodeMerged)
 
template<class dataType >
void dontUseMinMaxPair (ftm::FTMTree_MT *tree)
 
void verifyPairsTree (ftm::FTMTree_MT *tree)
 
template<class dataType >
void deleteMultiPersPairs (ftm::FTMTree_MT *tree, bool useBD)
 
template<class dataType >
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)
 
template<class dataType >
void preprocessingPipeline (ftm::MergeTree< dataType > &mTree, double epsilonTree, double epsilon2Tree, double epsilon3Tree, bool branchDecompositionT, bool useMinMaxPairT, bool cleanTreeT, std::vector< int > &nodeCorr, bool deleteInconsistentNodes=true)
 
void reverseNodeCorr (ftm::FTMTree_MT *tree, std::vector< int > &nodeCorr)
 
template<class dataType >
void mtFlattening (ftm::MergeTree< dataType > &mt)
 
template<class dataType >
void mtsFlattening (std::vector< ftm::MergeTree< dataType > > &mts)
 
double getSizeLimitMetric (std::vector< ftm::FTMTree_MT * > &trees)
 
template<class dataType >
void copyMinMaxPair (ftm::MergeTree< dataType > &mTree1, ftm::MergeTree< dataType > &mTree2, bool setOrigins=false)
 
template<class dataType >
std::tuple< int, dataType > fixMergedRootOrigin (ftm::FTMTree_MT *tree)
 
template<class dataType >
void branchDecompositionToTree (ftm::FTMTree_MT *tree)
 
template<class dataType >
void putBackMergedNodes (ftm::FTMTree_MT *tree)
 
template<class dataType >
void postprocessingPipeline (ftm::FTMTree_MT *tree)
 
template<class dataType >
void convertBranchDecompositionMatching (ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &outputMatching)
 
template<class dataType >
void convertBranchDecompositionMatching (ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode > > &outputMatching)
 
template<class dataType >
void identifyRealMatching (ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode > > &outputMatching, std::vector< std::tuple< ftm::idNode, ftm::idNode, bool > > &realMatching)
 
template<class dataType >
dataType computeDistance (dataType x1, dataType x2, dataType y1, dataType y2, double power=2)
 
template<class dataType >
dataType deleteCost (ftm::FTMTree_MT *tree, ftm::idNode nodeId)
 
template<class dataType >
dataType insertCost (ftm::FTMTree_MT *tree, ftm::idNode nodeId)
 
template<class dataType >
dataType relabelCostOnly (ftm::FTMTree_MT *tree1, ftm::idNode nodeId1, ftm::FTMTree_MT *tree2, ftm::idNode nodeId2)
 
template<class dataType >
dataType relabelCost (ftm::FTMTree_MT *tree1, ftm::idNode nodeId1, ftm::FTMTree_MT *tree2, ftm::idNode nodeId2)
 
void getParamNames (std::vector< std::string > &paramNames)
 
double getParamValueFromName (std::string &paramName)
 
void setParamValueFromName (std::string &paramName, double value)
 
void getTreesStats (std::vector< ftm::FTMTree_MT * > &trees, std::array< double, 3 > &stats)
 
void printTreesStats (std::vector< ftm::FTMTree_MT * > &trees)
 
template<class dataType >
void printTreesStats (std::vector< ftm::MergeTree< dataType > > &trees)
 
template<class dataType >
void printTableVector (std::vector< std::vector< dataType > > &table)
 
template<class dataType >
void printTable (dataType *table, int nRows, int nCols)
 
void printMatching (std::vector< MatchingType > &matchings)
 
void printMatching (std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &matchings)
 
void printMatching (std::vector< std::tuple< ftm::idNode, ftm::idNode > > &matchings)
 
template<class dataType >
void printPairs (std::vector< std::tuple< SimplexId, SimplexId, dataType > > &treePairs)
 
template<class dataType >
void printOutputMatching (std::vector< std::tuple< ftm::idNode, ftm::idNode > > &outputMatching, ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, bool computeCosts=true)
 

Protected Attributes

bool computeReconstructionError_ = false
 
bool transferInputTreesInformation_ = false
 
bool transferBarycenterInformation_ = false
 
std::vector< std::vector< double * > > pVS_
 
std::vector< std::vector< double * > > pV2s_
 
std::vector< std::vector< double * > > pTrees2Vs_
 
std::vector< std::vector< double * > > pTrees2V2s_
 
size_t vSize_
 
size_t vSize2_
 
std::vector< double * > pBranchesCorrelationMatrix_
 
std::vector< double * > pPersCorrelationMatrix_
 
std::vector< std::vector< double > > tEllipses_
 
std::vector< std::vector< double > > tRectangle_
 
std::vector< std::vector< double > > tSurface_
 
std::vector< std::vector< std::vector< double > > > tGeodesics_
 
std::vector< double > geodesicsDistances_
 
std::vector< bool > surfaceIsBoundary_
 
std::vector< int > surfaceBoundaryID_
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 
- Protected Attributes inherited from ttk::MergeTreePrincipalGeodesicsBase
std::vector< std::vector< std::vector< double > > > vS_
 
std::vector< std::vector< std::vector< double > > > v2s_
 
std::vector< std::vector< std::vector< double > > > trees2Vs_
 
std::vector< std::vector< std::vector< double > > > trees2V2s_
 
std::vector< std::vector< double > > allTs_
 
std::vector< std::vector< double > > allScaledTs_
 
std::vector< std::vector< double > > allTreesTs_
 
std::vector< std::vector< double > > branchesCorrelationMatrix_
 
std::vector< std::vector< double > > persCorrelationMatrix_
 
std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > baryMatchings_
 
std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > baryMatchings2_
 
- Protected Attributes inherited from ttk::MergeTreeAxesAlgorithmBase
bool deterministic_ = true
 
unsigned int numberOfGeodesics_ = 1
 
unsigned int k_ = 10
 
double barycenterSizeLimitPercent_ = 0.0
 
std::vector< std::vector< int > > trees2NodeCorr_
 
- Protected Attributes inherited from ttk::MergeTreeBase
int assignmentSolverID_ = 0
 
bool epsilon1UseFarthestSaddle_ = false
 
double epsilonTree1_ = 0
 
double epsilonTree2_ = 0
 
double epsilon2Tree1_ = 100
 
double epsilon2Tree2_ = 100
 
double epsilon3Tree1_ = 100
 
double epsilon3Tree2_ = 100
 
double persistenceThreshold_ = 0
 
bool barycenterMergeTree_ = false
 
bool useMinMaxPair_ = true
 
bool deleteMultiPersPairs_ = false
 
bool branchDecomposition_ = true
 
int wassersteinPower_ = 2
 
bool normalizedWasserstein_ = true
 
bool keepSubtree_ = false
 
bool distanceSquaredRoot_ = true
 
bool useFullMerge_ = false
 
bool isPersistenceDiagram_ = false
 
bool convertToDiagram_ = false
 
double mixtureCoefficient_ = 0.5
 
bool useDoubleInput_ = false
 
bool parallelize_ = true
 
int nodePerTask_ = 32
 
bool cleanTree_ = true
 
std::vector< std::vector< int > > treesNodeCorr_
 

Additional Inherited Members

- Protected Member Functions inherited from ttk::Debug
int printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const
 
int welcomeMsg (std::ostream &stream)
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

The MergeTreePrincipalGeodesicsDecoding class provides methods to compute the reconstruction of merge trees or persistence diagrams given a Principal Geodesic Analysis basis and projection coefficients.

Author
Mathieu Pont mathi.nosp@m.eu.p.nosp@m.ont@l.nosp@m.ip6..nosp@m.fr
Date
2022.

This module defines the MergeTreePrincipalGeodesicsDecoding class that computes the reconstruction of merge trees or persistence diagrams given a Principal Geodesic Analysis basis and projection coefficients.

Related publication:
"Principal Geodesic Analysis of Merge Trees (and Persistence Diagrams)"
Mathieu Pont, Jules Vidal, Julien Tierny.
Online examples:

Definition at line 32 of file MergeTreePrincipalGeodesicsDecoding.h.

Constructor & Destructor Documentation

◆ MergeTreePrincipalGeodesicsDecoding()

ttk::MergeTreePrincipalGeodesicsDecoding::MergeTreePrincipalGeodesicsDecoding ( )

Definition at line 3 of file MergeTreePrincipalGeodesicsDecoding.cpp.

Member Function Documentation

◆ computeGeodesicsDistance()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::computeGeodesicsDistance ( std::vector< ttk::ftm::MergeTree< dataType > > &  barycenters)
inline

Definition at line 112 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ constructGeodesicsEllipses()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::constructGeodesicsEllipses ( ftm::MergeTree< dataType > &  barycenter,
std::vector< ftm::MergeTree< dataType > > &  geodesicsEllipses,
bool  isSecondInput = false 
)
inline

Definition at line 284 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ constructGeodesicsRectangle()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::constructGeodesicsRectangle ( ftm::MergeTree< dataType > &  barycenter,
std::vector< ftm::MergeTree< dataType > > &  geodesicsRectangle,
unsigned int  rectangleMultiplier = 1,
bool  isSecondInput = false 
)
inline

Definition at line 355 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ constructGeodesicsSurface()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::constructGeodesicsSurface ( ftm::MergeTree< dataType > &  barycenter,
std::vector< ftm::MergeTree< dataType > > &  geodesicsSurface,
bool  isSecondInput = false 
)
inline

Definition at line 424 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ constructGeodesicsTrees()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::constructGeodesicsTrees ( ftm::MergeTree< dataType > &  barycenter,
std::vector< std::vector< ftm::MergeTree< dataType > > > &  geodesicsTrees,
bool  isSecondInput = false 
)
inline

Definition at line 238 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ getGeodesicsMiddle()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::getGeodesicsMiddle ( ftm::MergeTree< dataType > &  barycenter,
std::vector< std::vector< double * > > &  vS,
std::vector< std::vector< double * > > &  v2s,
size_t  vSize,
std::array< double, 2 > &  middle 
)
inline

Definition at line 85 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ getNumberOfRectangles()

unsigned int ttk::MergeTreePrincipalGeodesicsDecoding::getNumberOfRectangles ( unsigned int  rectangleMultiplier = 1)
inline

Definition at line 350 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ preprocessBarycenter()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::preprocessBarycenter ( ftm::MergeTree< dataType > &  barycenter)
inline

Definition at line 61 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ processInputTrees()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::processInputTrees ( std::vector< ttk::ftm::MergeTree< dataType > > &  inputTrees)
inline

Definition at line 74 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ reconstruction()

template<class dataType >
void ttk::MergeTreePrincipalGeodesicsDecoding::reconstruction ( ftm::MergeTree< dataType > &  barycenter,
std::vector< ftm::MergeTree< dataType > > &  inputTrees,
std::vector< ftm::MergeTree< dataType > > &  reconstructedTrees,
std::vector< double > &  reconstructionErrors,
std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &  recInputMatchings,
std::vector< std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > > &  recBaryMatchings,
bool  isSecondInput = false 
)
inline

Definition at line 161 of file MergeTreePrincipalGeodesicsDecoding.h.

Member Data Documentation

◆ computeReconstructionError_

bool ttk::MergeTreePrincipalGeodesicsDecoding::computeReconstructionError_ = false
protected

Definition at line 37 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ geodesicsDistances_

std::vector<double> ttk::MergeTreePrincipalGeodesicsDecoding::geodesicsDistances_
protected

Definition at line 49 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ pBranchesCorrelationMatrix_

std::vector<double *> ttk::MergeTreePrincipalGeodesicsDecoding::pBranchesCorrelationMatrix_
protected

Definition at line 43 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ pPersCorrelationMatrix_

std::vector<double *> ttk::MergeTreePrincipalGeodesicsDecoding::pPersCorrelationMatrix_
protected

Definition at line 43 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ pTrees2V2s_

std::vector<std::vector<double *> > ttk::MergeTreePrincipalGeodesicsDecoding::pTrees2V2s_
protected

Definition at line 41 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ pTrees2Vs_

std::vector<std::vector<double *> > ttk::MergeTreePrincipalGeodesicsDecoding::pTrees2Vs_
protected

Definition at line 41 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ pV2s_

std::vector<std::vector<double *> > ttk::MergeTreePrincipalGeodesicsDecoding::pV2s_
protected

Definition at line 41 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ pVS_

std::vector<std::vector<double *> > ttk::MergeTreePrincipalGeodesicsDecoding::pVS_
protected

Definition at line 41 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ surfaceBoundaryID_

std::vector<int> ttk::MergeTreePrincipalGeodesicsDecoding::surfaceBoundaryID_
protected

Definition at line 52 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ surfaceIsBoundary_

std::vector<bool> ttk::MergeTreePrincipalGeodesicsDecoding::surfaceIsBoundary_
protected

Definition at line 51 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ tEllipses_

std::vector<std::vector<double> > ttk::MergeTreePrincipalGeodesicsDecoding::tEllipses_
protected

Definition at line 46 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ tGeodesics_

std::vector<std::vector<std::vector<double> > > ttk::MergeTreePrincipalGeodesicsDecoding::tGeodesics_
protected

Definition at line 47 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ transferBarycenterInformation_

bool ttk::MergeTreePrincipalGeodesicsDecoding::transferBarycenterInformation_ = false
protected

Definition at line 39 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ transferInputTreesInformation_

bool ttk::MergeTreePrincipalGeodesicsDecoding::transferInputTreesInformation_ = false
protected

Definition at line 38 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ tRectangle_

std::vector<std::vector<double> > ttk::MergeTreePrincipalGeodesicsDecoding::tRectangle_
protected

Definition at line 46 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ tSurface_

std::vector<std::vector<double> > ttk::MergeTreePrincipalGeodesicsDecoding::tSurface_
protected

Definition at line 46 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ vSize2_

size_t ttk::MergeTreePrincipalGeodesicsDecoding::vSize2_
protected

Definition at line 42 of file MergeTreePrincipalGeodesicsDecoding.h.

◆ vSize_

size_t ttk::MergeTreePrincipalGeodesicsDecoding::vSize_
protected

Definition at line 42 of file MergeTreePrincipalGeodesicsDecoding.h.


The documentation for this class was generated from the following files: