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

TTK processing package for progressive Topological Data Analysis. More...

#include <ApproximateTopology.h>

Inheritance diagram for ttk::ApproximateTopology:
ttk::MultiresTopology ttk::Debug ttk::BaseClass

Public Member Functions

 ApproximateTopology ()
 
void setEpsilon (double data)
 
void setDelta (double data)
 
template<typename scalarType >
int computeApproximatePD (std::vector< PersistencePair > &CTDiagram, const scalarType *scalars, scalarType *const fakeScalars, SimplexId *const outputOffsets, int *const outputMonotonyOffsets)
 
template<typename scalarType >
int executeApproximateTopology (const scalarType *scalars, scalarType *fakeScalars, SimplexId *outputOffsets, int *outputMonotonyOffsets)
 
template<typename scalarType , typename offsetType >
void initGlobalPolarity (std::vector< polarity > &isNew, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toProcess, const scalarType *fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets) const
 
template<typename scalarType , typename offsetType >
void updatePropagation (std::vector< polarity > &toPropagateMin, std::vector< polarity > &toPropagateMax, std::vector< std::vector< SimplexId > > &vertexRepresentativesMin, std::vector< std::vector< SimplexId > > &vertexRepresentativesMax, std::vector< std::vector< SimplexId > > &saddleCCMin, std::vector< std::vector< SimplexId > > &saddleCCMax, std::vector< Lock > &vertLockMin, std::vector< Lock > &vertLockMax, std::vector< polarity > &isUpdatedMin, std::vector< polarity > &isUpdatedMax, const scalarType *fakeScalars, const offsetType *const offsetField, const int *const monotonyOffsets)
 
template<typename scalarType , typename offsetType >
void buildVertexLinkPolarityApproximate (const SimplexId vertexId, std::vector< std::pair< polarity, polarity > > &vlp, const scalarType *fakeScalars, const offsetType *const offsetField, const int *const monotonyOffsets) const
 
template<typename ScalarType , typename OffsetType >
void sortTripletsApproximate (std::vector< triplet > &triplets, const ScalarType *const scalars, const ScalarType *const fakeScalars, const OffsetType *const offsets, const int *const monotonyOffsets, const bool splitTree) const
 
template<typename scalarType , typename offsetType >
void getCriticalTypeApproximate (const SimplexId &vertexId, std::vector< std::pair< polarity, polarity > > &vlp, uint8_t &vertexLink, DynamicTree &link, VLBoundaryType &vlbt, const scalarType *fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets) const
 
template<typename ScalarType , typename offsetType >
void computeCriticalPoints (std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toPropagateMin, std::vector< polarity > &toPropagateMax, std::vector< polarity > &toProcess, std::vector< DynamicTree > &link, std::vector< uint8_t > &vertexLink, VLBoundaryType &vertexLinkByBoundaryType, std::vector< std::vector< SimplexId > > &saddleCCMin, std::vector< std::vector< SimplexId > > &saddleCCMax, ScalarType *fakeScalars, const offsetType *const offsets, int *monotonyOffsets)
 
template<typename scalarType , typename offsetType >
ttk::SimplexId propagateFromSaddles (const SimplexId vertexId, std::vector< Lock > &vertLock, std::vector< polarity > &toPropagate, std::vector< std::vector< SimplexId > > &vertexRepresentatives, std::vector< std::vector< SimplexId > > &saddleCC, std::vector< polarity > &isUpdated, std::vector< SimplexId > &globalExtremum, const bool splitTree, const scalarType *fakeScalars, const offsetType *const offsetField, const int *const monotonyOffsets) const
 
template<typename ScalarType , typename offsetType >
void computePersistencePairsFromSaddles (std::vector< PersistencePair > &CTDiagram, const ScalarType *const fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets, std::vector< std::vector< SimplexId > > &vertexRepresentativesMin, std::vector< std::vector< SimplexId > > &vertexRepresentativesMax, const std::vector< polarity > &toPropagateMin, const std::vector< polarity > &toPropagateMax) const
 
template<typename scalarType , typename offsetType >
void sortVertices (const SimplexId vertexNumber, std::vector< SimplexId > &sortedVertices, SimplexId *vertsOrder, const scalarType *const fakeScalars, const offsetType *const offsetField, const int *const monotonyOffsets)
 
template<typename scalarType >
int sortPersistenceDiagramApproximate (std::vector< PersistencePair > &diagram, scalarType *fakeScalars, const SimplexId *const offsets, int *monotonyOffsets) const
 
template<typename scalarType >
int executeApproximateTopology (const scalarType *ttkNotUsed(scalars), scalarType *fakeScalars, SimplexId *outputOffsets, int *outputMonotonyOffsets)
 
template<typename ScalarType , typename OffsetType >
void computePersistencePairsFromSaddles (std::vector< PersistencePair > &CTDiagram, const ScalarType *const fakeScalars, const OffsetType *const offsets, const int *const monotonyOffsets, std::vector< std::vector< SimplexId > > &vertexRepresentativesMin, std::vector< std::vector< SimplexId > > &vertexRepresentativesMax, const std::vector< polarity > &toPropagateMin, const std::vector< polarity > &toPropagateMax) const
 
- Public Member Functions inherited from ttk::MultiresTopology
 MultiresTopology ()
 
void setupTriangulation (ImplicitTriangulation *const data)
 
virtual void setStartingDecimationLevel (int data)
 
virtual void setStoppingDecimationLevel (int data)
 
virtual void setPreallocateMemory (const bool b)
 
int getStoppingDecimationLevel ()
 
void setStartingResolutionLevel (int rl)
 
void setStoppingResolutionLevel (int rl)
 
- 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)
 

Protected Types

using VLBoundaryType = std::array< std::vector< std::pair< SimplexId, SimplexId > >, nLink_ >
 
- Protected Types inherited from ttk::MultiresTopology
using VLBoundaryType = std::array< std::vector< std::pair< SimplexId, SimplexId > >, nLink_ >
 

Protected Member Functions

void initCriticalPoints (std::vector< polarity > &isNew, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toProcess, std::vector< DynamicTree > &link, std::vector< uint8_t > &vertexLink, VLBoundaryType &vertexLinkByBoundaryType, std::vector< char > &vertexTypes, const SimplexId *const offsets) const
 
void initSaddleSeeds (std::vector< polarity > &isNew, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toPropagateMin, std::vector< polarity > &toPropagateMax, std::vector< polarity > &toProcess, std::vector< DynamicTree > &link, std::vector< uint8_t > &vertexLink, VLBoundaryType &vertexLinkByBoundaryType, std::vector< std::vector< SimplexId > > &saddleCCMin, std::vector< std::vector< SimplexId > > &saddleCCMax, const SimplexId *const offsets) const
 
template<typename scalarType , typename offsetType >
void updatePropagation (std::vector< polarity > &toPropagateMin, std::vector< polarity > &toPropagateMax, std::vector< std::vector< SimplexId > > &vertexRepresentativesMin, std::vector< std::vector< SimplexId > > &vertexRepresentativesMax, std::vector< std::vector< SimplexId > > &saddleCCMin, std::vector< std::vector< SimplexId > > &saddleCCMax, std::vector< Lock > &vertLockMin, std::vector< Lock > &vertLockMax, std::vector< polarity > &isUpdatedMin, std::vector< polarity > &isUpdatedMax, const scalarType *fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets) const
 
template<typename scalarType , typename offsetType >
void buildVertexLinkPolarity (const SimplexId vertexId, std::vector< std::pair< polarity, polarity > > &vlp, const scalarType *fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets) const
 
template<typename ScalarType , typename OffsetType >
void sortTriplets (std::vector< triplet > &triplets, const ScalarType *const fakeScalars, const OffsetType *const offsets, const int *const monotonyOffsets, const bool splitTree) const
 
template<typename scalarType , typename offsetType >
void tripletsToPersistencePairs (std::vector< PersistencePair > &pairs, std::vector< std::vector< SimplexId > > &vertexRepresentatives, std::vector< triplet > &triplets, const scalarType *const fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets, const bool splitTree) const
 
template<typename scalarType , typename offsetType >
int getMonotonyChangeByOldPointCPApproximate (const SimplexId vertexId, double eps, const std::vector< polarity > &isNew, std::vector< polarity > &toProcess, std::vector< polarity > &toReprocess, std::vector< std::pair< polarity, polarity > > &vlp, scalarType *fakeScalars, const offsetType *const offsets, int *monotonyOffsets) const
 
template<typename ScalarType , typename offsetType >
int updateGlobalPolarity (double eps, std::vector< polarity > &isNew, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toProcess, std::vector< polarity > &toReprocess, ScalarType *fakeScalars, const offsetType *const offsets, int *monotonyOffsets) const
 
ttk::SimplexId propagateFromSaddles (const SimplexId vertexId, std::vector< Lock > &vertLock, std::vector< polarity > &toPropagate, std::vector< std::vector< SimplexId > > &vertexRepresentatives, std::vector< std::vector< SimplexId > > &saddleCC, std::vector< polarity > &isUpdated, std::vector< SimplexId > &globalExtremum, const SimplexId *const offsets, const bool splitTree) const
 
void computePersistencePairsFromSaddles (std::vector< PersistencePair > &CTDiagram, const SimplexId *const offsets, std::vector< std::vector< SimplexId > > &vertexRepresentativesMin, std::vector< std::vector< SimplexId > > &vertexRepresentativesMax, const std::vector< polarity > &toPropagateMin, const std::vector< polarity > &toPropagateMax) const
 
template<typename scalarType , typename offsetType >
bool printPolarity (std::vector< polarity > &isNew, const SimplexId vertexId, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, const scalarType *scalars, const scalarType *fakeScalars, const offsetType *const offsets, const int *const monotonyOffsets, bool verbose=false)
 
- Protected Member Functions inherited from ttk::MultiresTopology
void buildVertexLinkByBoundary (const SimplexId vertexId, VLBoundaryType &vlbt) const
 
char getCriticalTypeFromLink (const std::vector< std::pair< polarity, polarity > > &vlp, DynamicTree &link) const
 
void getValencesFromLink (const SimplexId vertexId, const std::vector< std::pair< polarity, polarity > > &vlp, DynamicTree &link, std::vector< polarity > &toPropagateMin, std::vector< polarity > &toPropagateMax, std::vector< std::vector< SimplexId > > &saddleCCMin, std::vector< std::vector< SimplexId > > &saddleCCMax) const
 
void getTripletsFromSaddles (const SimplexId vertexId, std::vector< triplet > &triplets, const std::vector< std::vector< SimplexId > > &vertexReps) const
 
void updateLinkPolarityPonctual (std::vector< std::pair< polarity, polarity > > &vlp) const
 
std::string resolutionInfoString ()
 
- 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)
 

Protected Attributes

double epsilon_ {}
 
double delta_ {}
 
- Protected Attributes inherited from ttk::MultiresTopology
ImplicitTriangulationtriangulation_ {}
 
MultiresTriangulation multiresTriangulation_ {}
 
SimplexId globalMax_ {}
 
SimplexId globalMin_ {}
 
int decimationLevel_ {}
 
int startingDecimationLevel_ {}
 
int stoppingDecimationLevel_ {}
 
bool preallocateMemory_ {true}
 
std::vector< PersistencePairCTDiagram_ {}
 
- 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_
 

Static Protected Attributes

static const size_t nLink_ = 27
 
- Static Protected Attributes inherited from ttk::MultiresTopology
static const size_t nLink_ = 27
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK processing package for progressive Topological Data Analysis.

Author
Jules Vidal jules.nosp@m..vid.nosp@m.al@li.nosp@m.p6.f.nosp@m.r
Date
2021.

This package introduces an approximation algorithm for the computation of the extremum-saddle persistence diagram of a scalar field. The approximation comes with a user-controlled error on the Bottleneck distance to the exact diagram.

Related publication
"Fast Approximation of Persistence Diagrams with Guarantees"
Jules Vidal, Julien Tierny
IEEE Symposium on Large Data Visualization and Analysis (LDAV), 2021

See also
PersistenceDiagram

Definition at line 36 of file ApproximateTopology.h.

Member Typedef Documentation

◆ VLBoundaryType

using ttk::ApproximateTopology::VLBoundaryType = std::array<std::vector<std::pair<SimplexId, SimplexId> >, nLink_>
protected

Definition at line 172 of file ApproximateTopology.h.

Constructor & Destructor Documentation

◆ ApproximateTopology()

ttk::ApproximateTopology::ApproximateTopology ( )
inline

Definition at line 39 of file ApproximateTopology.h.

Member Function Documentation

◆ buildVertexLinkPolarity()

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::buildVertexLinkPolarity ( const SimplexId  vertexId,
std::vector< std::pair< polarity, polarity > > &  vlp,
const scalarType *  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets 
) const
protected

◆ buildVertexLinkPolarityApproximate()

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::buildVertexLinkPolarityApproximate ( const SimplexId  vertexId,
std::vector< std::pair< polarity, polarity > > &  vlp,
const scalarType *  fakeScalars,
const offsetType *const  offsetField,
const int *const  monotonyOffsets 
) const

Definition at line 1033 of file ApproximateTopology.h.

◆ computeApproximatePD()

template<typename scalarType >
int ttk::ApproximateTopology::computeApproximatePD ( std::vector< PersistencePair > &  CTDiagram,
const scalarType *  scalars,
scalarType *const  fakeScalars,
SimplexId *const  outputOffsets,
int *const  outputMonotonyOffsets 
)

Definition at line 1320 of file ApproximateTopology.h.

◆ computeCriticalPoints()

template<typename ScalarType , typename offsetType >
void ttk::ApproximateTopology::computeCriticalPoints ( std::vector< std::vector< std::pair< polarity, polarity > > > &  vertexLinkPolarity,
std::vector< polarity > &  toPropagateMin,
std::vector< polarity > &  toPropagateMax,
std::vector< polarity > &  toProcess,
std::vector< DynamicTree > &  link,
std::vector< uint8_t > &  vertexLink,
VLBoundaryType vertexLinkByBoundaryType,
std::vector< std::vector< SimplexId > > &  saddleCCMin,
std::vector< std::vector< SimplexId > > &  saddleCCMax,
ScalarType *  fakeScalars,
const offsetType *const  offsets,
int *  monotonyOffsets 
)

Definition at line 1256 of file ApproximateTopology.h.

◆ computePersistencePairsFromSaddles() [1/3]

template<typename ScalarType , typename offsetType >
void ttk::ApproximateTopology::computePersistencePairsFromSaddles ( std::vector< PersistencePair > &  CTDiagram,
const ScalarType *const  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMin,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMax,
const std::vector< polarity > &  toPropagateMin,
const std::vector< polarity > &  toPropagateMax 
) const

◆ computePersistencePairsFromSaddles() [2/3]

template<typename ScalarType , typename OffsetType >
void ttk::ApproximateTopology::computePersistencePairsFromSaddles ( std::vector< PersistencePair > &  CTDiagram,
const ScalarType *const  fakeScalars,
const OffsetType *const  offsets,
const int *const  monotonyOffsets,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMin,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMax,
const std::vector< polarity > &  toPropagateMin,
const std::vector< polarity > &  toPropagateMax 
) const

Definition at line 461 of file ApproximateTopology.h.

◆ computePersistencePairsFromSaddles() [3/3]

void ttk::ApproximateTopology::computePersistencePairsFromSaddles ( std::vector< PersistencePair > &  CTDiagram,
const SimplexId *const  offsets,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMin,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMax,
const std::vector< polarity > &  toPropagateMin,
const std::vector< polarity > &  toPropagateMax 
) const
protected

◆ executeApproximateTopology() [1/2]

template<typename scalarType >
int ttk::ApproximateTopology::executeApproximateTopology ( const scalarType *  scalars,
scalarType *  fakeScalars,
SimplexId outputOffsets,
int *  outputMonotonyOffsets 
)

◆ executeApproximateTopology() [2/2]

template<typename scalarType >
int ttk::ApproximateTopology::executeApproximateTopology ( const scalarType *  ttkNotUsedscalars,
scalarType *  fakeScalars,
SimplexId outputOffsets,
int *  outputMonotonyOffsets 
)

Definition at line 300 of file ApproximateTopology.h.

◆ getCriticalTypeApproximate()

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::getCriticalTypeApproximate ( const SimplexId vertexId,
std::vector< std::pair< polarity, polarity > > &  vlp,
uint8_t &  vertexLink,
DynamicTree link,
VLBoundaryType vlbt,
const scalarType *  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets 
) const

Definition at line 1141 of file ApproximateTopology.h.

◆ getMonotonyChangeByOldPointCPApproximate()

template<typename scalarType , typename offsetType >
int ttk::ApproximateTopology::getMonotonyChangeByOldPointCPApproximate ( const SimplexId  vertexId,
double  eps,
const std::vector< polarity > &  isNew,
std::vector< polarity > &  toProcess,
std::vector< polarity > &  toReprocess,
std::vector< std::pair< polarity, polarity > > &  vlp,
scalarType *  fakeScalars,
const offsetType *const  offsets,
int *  monotonyOffsets 
) const
protected

Definition at line 673 of file ApproximateTopology.h.

◆ initCriticalPoints()

void ttk::ApproximateTopology::initCriticalPoints ( std::vector< polarity > &  isNew,
std::vector< std::vector< std::pair< polarity, polarity > > > &  vertexLinkPolarity,
std::vector< polarity > &  toProcess,
std::vector< DynamicTree > &  link,
std::vector< uint8_t > &  vertexLink,
VLBoundaryType vertexLinkByBoundaryType,
std::vector< char > &  vertexTypes,
const SimplexId *const  offsets 
) const
protected

◆ initGlobalPolarity()

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::initGlobalPolarity ( std::vector< polarity > &  isNew,
std::vector< std::vector< std::pair< polarity, polarity > > > &  vertexLinkPolarity,
std::vector< polarity > &  toProcess,
const scalarType *  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets 
) const

Definition at line 1177 of file ApproximateTopology.h.

◆ initSaddleSeeds()

void ttk::ApproximateTopology::initSaddleSeeds ( std::vector< polarity > &  isNew,
std::vector< std::vector< std::pair< polarity, polarity > > > &  vertexLinkPolarity,
std::vector< polarity > &  toPropagateMin,
std::vector< polarity > &  toPropagateMax,
std::vector< polarity > &  toProcess,
std::vector< DynamicTree > &  link,
std::vector< uint8_t > &  vertexLink,
VLBoundaryType vertexLinkByBoundaryType,
std::vector< std::vector< SimplexId > > &  saddleCCMin,
std::vector< std::vector< SimplexId > > &  saddleCCMax,
const SimplexId *const  offsets 
) const
protected

◆ printPolarity()

template<typename scalarType , typename offsetType >
bool ttk::ApproximateTopology::printPolarity ( std::vector< polarity > &  isNew,
const SimplexId  vertexId,
std::vector< std::vector< std::pair< polarity, polarity > > > &  vertexLinkPolarity,
const scalarType *  scalars,
const scalarType *  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets,
bool  verbose = false 
)
protected

Definition at line 1062 of file ApproximateTopology.h.

◆ propagateFromSaddles() [1/2]

template<typename scalarType , typename offsetType >
ttk::SimplexId ttk::ApproximateTopology::propagateFromSaddles ( const SimplexId  vertexId,
std::vector< Lock > &  vertLock,
std::vector< polarity > &  toPropagate,
std::vector< std::vector< SimplexId > > &  vertexRepresentatives,
std::vector< std::vector< SimplexId > > &  saddleCC,
std::vector< polarity > &  isUpdated,
std::vector< SimplexId > &  globalExtremum,
const bool  splitTree,
const scalarType *  fakeScalars,
const offsetType *const  offsetField,
const int *const  monotonyOffsets 
) const

Definition at line 794 of file ApproximateTopology.h.

◆ propagateFromSaddles() [2/2]

ttk::SimplexId ttk::ApproximateTopology::propagateFromSaddles ( const SimplexId  vertexId,
std::vector< Lock > &  vertLock,
std::vector< polarity > &  toPropagate,
std::vector< std::vector< SimplexId > > &  vertexRepresentatives,
std::vector< std::vector< SimplexId > > &  saddleCC,
std::vector< polarity > &  isUpdated,
std::vector< SimplexId > &  globalExtremum,
const SimplexId *const  offsets,
const bool  splitTree 
) const
protected

◆ setDelta()

void ttk::ApproximateTopology::setDelta ( double  data)
inline

Definition at line 45 of file ApproximateTopology.h.

◆ setEpsilon()

void ttk::ApproximateTopology::setEpsilon ( double  data)
inline

Definition at line 42 of file ApproximateTopology.h.

◆ sortPersistenceDiagramApproximate()

template<typename scalarType >
int ttk::ApproximateTopology::sortPersistenceDiagramApproximate ( std::vector< PersistencePair > &  diagram,
scalarType *  fakeScalars,
const SimplexId *const  offsets,
int *  monotonyOffsets 
) const

Definition at line 1297 of file ApproximateTopology.h.

◆ sortTriplets()

template<typename ScalarType , typename OffsetType >
void ttk::ApproximateTopology::sortTriplets ( std::vector< triplet > &  triplets,
const ScalarType *const  fakeScalars,
const OffsetType *const  offsets,
const int *const  monotonyOffsets,
const bool  splitTree 
) const
protected

Definition at line 520 of file ApproximateTopology.h.

◆ sortTripletsApproximate()

template<typename ScalarType , typename OffsetType >
void ttk::ApproximateTopology::sortTripletsApproximate ( std::vector< triplet > &  triplets,
const ScalarType *const  scalars,
const ScalarType *const  fakeScalars,
const OffsetType *const  offsets,
const int *const  monotonyOffsets,
const bool  splitTree 
) const

◆ sortVertices()

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::sortVertices ( const SimplexId  vertexNumber,
std::vector< SimplexId > &  sortedVertices,
SimplexId vertsOrder,
const scalarType *const  fakeScalars,
const offsetType *const  offsetField,
const int *const  monotonyOffsets 
)

Definition at line 635 of file ApproximateTopology.h.

◆ tripletsToPersistencePairs()

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::tripletsToPersistencePairs ( std::vector< PersistencePair > &  pairs,
std::vector< std::vector< SimplexId > > &  vertexRepresentatives,
std::vector< triplet > &  triplets,
const scalarType *const  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets,
const bool  splitTree 
) const
protected

Definition at line 552 of file ApproximateTopology.h.

◆ updateGlobalPolarity()

template<typename ScalarType , typename offsetType >
int ttk::ApproximateTopology::updateGlobalPolarity ( double  eps,
std::vector< polarity > &  isNew,
std::vector< std::vector< std::pair< polarity, polarity > > > &  vertexLinkPolarity,
std::vector< polarity > &  toProcess,
std::vector< polarity > &  toReprocess,
ScalarType *  fakeScalars,
const offsetType *const  offsets,
int *  monotonyOffsets 
) const
protected

Definition at line 1204 of file ApproximateTopology.h.

◆ updatePropagation() [1/2]

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::updatePropagation ( std::vector< polarity > &  toPropagateMin,
std::vector< polarity > &  toPropagateMax,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMin,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMax,
std::vector< std::vector< SimplexId > > &  saddleCCMin,
std::vector< std::vector< SimplexId > > &  saddleCCMax,
std::vector< Lock > &  vertLockMin,
std::vector< Lock > &  vertLockMax,
std::vector< polarity > &  isUpdatedMin,
std::vector< polarity > &  isUpdatedMax,
const scalarType *  fakeScalars,
const offsetType *const  offsetField,
const int *const  monotonyOffsets 
)

Definition at line 927 of file ApproximateTopology.h.

◆ updatePropagation() [2/2]

template<typename scalarType , typename offsetType >
void ttk::ApproximateTopology::updatePropagation ( std::vector< polarity > &  toPropagateMin,
std::vector< polarity > &  toPropagateMax,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMin,
std::vector< std::vector< SimplexId > > &  vertexRepresentativesMax,
std::vector< std::vector< SimplexId > > &  saddleCCMin,
std::vector< std::vector< SimplexId > > &  saddleCCMax,
std::vector< Lock > &  vertLockMin,
std::vector< Lock > &  vertLockMax,
std::vector< polarity > &  isUpdatedMin,
std::vector< polarity > &  isUpdatedMax,
const scalarType *  fakeScalars,
const offsetType *const  offsets,
const int *const  monotonyOffsets 
) const
protected

Member Data Documentation

◆ delta_

double ttk::ApproximateTopology::delta_ {}
protected

Definition at line 295 of file ApproximateTopology.h.

◆ epsilon_

double ttk::ApproximateTopology::epsilon_ {}
protected

Definition at line 294 of file ApproximateTopology.h.

◆ nLink_

const size_t ttk::ApproximateTopology::nLink_ = 27
staticprotected

Definition at line 171 of file ApproximateTopology.h.


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