TTK
|
TTK processing package for progressive Topological Data Analysis. More...
#include <ProgressiveTopology.h>
Public Member Functions | |
ProgressiveTopology () | |
int | executeCPProgressive (int computePersistenceDiagram, const SimplexId *inputOffsets) |
int | resumeProgressive (int computePersistenceDiagram, const SimplexId *offsets) |
void | setAlgorithm (int data) |
void | setStartingDecimationLevel (int data) override |
void | setStoppingDecimationLevel (int data) override |
void | setIsResumable (const bool b) |
void | setPreallocateMemory (const bool b) override |
void | setTimeLimit (const double d) |
int | computeProgressivePD (std::vector< PersistencePair > &CTDiagram, const SimplexId *offsets) |
int | computeProgressiveCP (std::vector< std::pair< SimplexId, char > > *criticalPoints, const SimplexId *offsets) |
![]() | |
MultiresTopology () | |
void | setupTriangulation (ImplicitTriangulation *const data) |
int | getStoppingDecimationLevel () |
void | setStartingResolutionLevel (int rl) |
void | setStoppingResolutionLevel (int rl) |
![]() | |
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) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Protected Types | |
using | VLBoundaryType = std::array< std::vector< std::pair< SimplexId, SimplexId > >, nLink_ > |
![]() | |
using | VLBoundaryType = std::array< std::vector< std::pair< SimplexId, SimplexId > >, nLink_ > |
Protected Member Functions | |
void | sortPersistenceDiagram2 (std::vector< PersistencePair > &diagram, const SimplexId *const offsets) const |
void | initCriticalPoints (std::vector< polarity > &isNew, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toProcess, std::vector< polarity > &toReprocess, 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 |
void | initPropagation (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 SimplexId *const offsets) const |
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 SimplexId *const offsets) const |
void | buildVertexLinkPolarity (const SimplexId vertexId, std::vector< std::pair< polarity, polarity > > &vlp, const SimplexId *const offsets) const |
void | sortTriplets (std::vector< triplet > &triplets, const SimplexId *const offsets, const bool splitTree) const |
void | tripletsToPersistencePairs (std::vector< PersistencePair > &pairs, std::vector< std::vector< SimplexId > > &vertexRepresentatives, std::vector< triplet > &triplets, const SimplexId *const offsets, const bool splitTree) const |
void | initDynamicLink (const SimplexId &vertexId, std::vector< std::pair< polarity, polarity > > &vlp, uint8_t &vertexLink, DynamicTree &link, VLBoundaryType &vlbt, const SimplexId *const offsets) const |
char | getCriticalTypeFromLink (const SimplexId globalId, const std::vector< std::pair< polarity, polarity > > &vlp, DynamicTree &link, polarity &reprocess) const |
void | updateDynamicLink (DynamicTree &link, std::vector< std::pair< polarity, polarity > > &vlp, std::vector< std::pair< SimplexId, SimplexId > > &vl) const |
void | updateCriticalPoints (std::vector< polarity > &isNew, std::vector< std::vector< std::pair< polarity, polarity > > > &vertexLinkPolarity, std::vector< polarity > &toProcess, std::vector< polarity > &toReprocess, std::vector< DynamicTree > &link, std::vector< uint8_t > &vertexLink, VLBoundaryType &vertexLinkByBoundaryType, std::vector< char > &vertexTypes, const SimplexId *const offsets) const |
void | updateSaddleSeeds (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< polarity > &toReprocess, std::vector< DynamicTree > &link, std::vector< uint8_t > &vertexLink, VLBoundaryType &vertexLinkByBoundaryType, std::vector< std::vector< SimplexId > > &saddleCCMin, std::vector< std::vector< SimplexId > > &saddleCCMax, std::vector< polarity > &isUpdatedMin, std::vector< polarity > &isUpdatedMax, const SimplexId *const offsets) const |
bool | getMonotonyChangeByOldPointCP (const SimplexId vertexId, const std::vector< polarity > &isNew, std::vector< polarity > &toProcess, std::vector< polarity > &toReprocess, std::vector< std::pair< polarity, polarity > > &vlp, const SimplexId *const offsets) const |
void | updateLinkPolarity (const SimplexId vertexId, std::vector< std::pair< polarity, polarity > > &vlp, const SimplexId *const offsets) 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 |
double | predictNextIterationDuration (const double currItDuration, const size_t nCurrPairs) const |
void | stopComputationIf (const bool b) |
void | clearResumableState () |
![]() | |
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 () |
![]() | |
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) |
Additional Inherited Members | |
![]() | |
static const size_t | nLink_ = 27 |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package for progressive Topological Data Analysis.
Compute the persistence diagram of a function on a triangulation. TTK assumes that the input dataset is made of only one connected component.
This package introduces a multiresolution hierarchical representation of the data which allows the definition of efficient progressive algorithms for TDA. It is applied to the progressive computation of Critical Points and Persistence Diagrams.
Related publication
"A Progressive Approach to Scalar Field Topology"
Jules Vidal, Pierre Guillou, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics, 2021
Definition at line 44 of file ProgressiveTopology.h.
|
protected |
Definition at line 120 of file ProgressiveTopology.h.
|
inline |
Definition at line 63 of file ProgressiveTopology.h.
|
protected |
Definition at line 448 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 1077 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 303 of file ProgressiveTopology.cpp.
int ttk::ProgressiveTopology::computeProgressiveCP | ( | std::vector< std::pair< SimplexId, char > > * | criticalPoints, |
const SimplexId * | offsets | ||
) |
Definition at line 1201 of file ProgressiveTopology.cpp.
int ttk::ProgressiveTopology::computeProgressivePD | ( | std::vector< PersistencePair > & | CTDiagram, |
const SimplexId * | offsets | ||
) |
Definition at line 5 of file ProgressiveTopology.cpp.
int ttk::ProgressiveTopology::executeCPProgressive | ( | int | computePersistenceDiagram, |
const SimplexId * | inputOffsets | ||
) |
Definition at line 16 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 1092 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 665 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 797 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 465 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 871 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 833 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 1054 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 705 of file ProgressiveTopology.cpp.
int ttk::ProgressiveTopology::resumeProgressive | ( | int | computePersistenceDiagram, |
const SimplexId * | offsets | ||
) |
Definition at line 223 of file ProgressiveTopology.cpp.
|
inline |
Definition at line 74 of file ProgressiveTopology.h.
|
inline |
Definition at line 89 of file ProgressiveTopology.h.
|
inlineoverridevirtual |
Reimplemented from ttk::MultiresTopology.
Definition at line 95 of file ProgressiveTopology.h.
|
inlineoverridevirtual |
Reimplemented from ttk::MultiresTopology.
Definition at line 77 of file ProgressiveTopology.h.
|
inlineoverridevirtual |
Reimplemented from ttk::MultiresTopology.
Definition at line 83 of file ProgressiveTopology.h.
|
inline |
Definition at line 101 of file ProgressiveTopology.h.
|
protected |
Definition at line 1191 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 364 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 1066 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 389 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 497 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 982 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 968 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 919 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 577 of file ProgressiveTopology.cpp.
|
protected |
Definition at line 275 of file ProgressiveTopology.h.
|
protected |
Definition at line 289 of file ProgressiveTopology.h.
|
protected |
Definition at line 278 of file ProgressiveTopology.h.
|
protected |
Definition at line 293 of file ProgressiveTopology.h.
|
protected |
Definition at line 282 of file ProgressiveTopology.h.
|
protected |
Definition at line 279 of file ProgressiveTopology.h.
|
protected |
Definition at line 297 of file ProgressiveTopology.h.
|
protected |
Definition at line 296 of file ProgressiveTopology.h.
|
protected |
Definition at line 281 of file ProgressiveTopology.h.
|
protected |
Definition at line 294 of file ProgressiveTopology.h.
|
protected |
Definition at line 295 of file ProgressiveTopology.h.
|
protected |
Definition at line 291 of file ProgressiveTopology.h.
|
protected |
Definition at line 292 of file ProgressiveTopology.h.
|
protected |
Definition at line 288 of file ProgressiveTopology.h.
|
protected |
Definition at line 285 of file ProgressiveTopology.h.
|
protected |
Definition at line 286 of file ProgressiveTopology.h.
|
protected |
Definition at line 298 of file ProgressiveTopology.h.