TTK
|
TTK processing package for the computation of Wasserstein barycenters and K-Means clusterings of a set of persistence diagrams. More...
#include <ttkPersistenceDiagramClustering.h>
Public Types | |
enum class | DISPLAY { COMPACT = 0 , STARS = 1 , MATCHINGS = 2 } |
enum class | METHOD { PROGRESSIVE = 0 , AUCTION = 1 } |
typedef ttkAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
virtual void | SetWassersteinMetric (int) |
virtual int | GetWassersteinMetric () |
virtual void | SetUseProgressive (bool) |
virtual bool | GetUseProgressive () |
virtual void | SetTimeLimit (double) |
virtual double | GetTimeLimit () |
void | SetAlpha (const double alpha) |
void | SetAntiAlpha (const double antiAlpha) |
virtual double | GetAlpha () |
virtual void | SetDeltaLim (double) |
virtual double | GetDeltaLim () |
virtual void | SetLambda (double) |
virtual double | GetLambda () |
virtual void | SetNumberOfClusters (int) |
virtual int | GetNumberOfClusters () |
virtual void | SetUseAccelerated (bool) |
virtual bool | GetUseAccelerated () |
virtual void | SetUseKmeansppInit (bool) |
virtual bool | GetUseKmeansppInit () |
virtual void | SetForceUseOfAlgorithm (bool) |
virtual bool | GetForceUseOfAlgorithm () |
virtual void | SetDeterministic (bool) |
virtual bool | GetDeterministic () |
virtual void | SetPairTypeClustering (int) |
virtual int | GetPairTypeClustering () |
void | SetSpacing (double spacing) |
virtual double | GetSpacing () |
void | SetDisplayMethod (int displayMethod) |
virtual DISPLAY | GetDisplayMethod () const |
virtual void | SetUseAdditionalPrecision (bool) |
virtual bool | GetUseAdditionalPrecision () |
virtual void | SetDistanceWritingOptions (int) |
virtual int | GetDistanceWritingOptions () |
virtual void | SetUseInterruptible (bool) |
virtual bool | GetUseInterruptible () |
virtual void | SetMethod (int _arg) |
virtual void | SetMethod (METHOD) |
virtual METHOD | GetMethod () const |
virtual void | SetNonMatchingWeight (double) |
virtual double | GetNonMatchingWeight () |
![]() | |
void | UpdateThreadNumber () |
void | SetThreadNumber (int threadNumber) |
void | SetUseAllCores (bool useAllCores) |
void | SetDebugLevel (int debugLevel) |
void | SetCompactTriangulationCacheSize (float cacheSize) |
vtkDataArray * | GetOptionalArray (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, const int &inputPort=0) |
vtkDataArray * | GetOrderArray (vtkDataSet *const inputData, const int scalarArrayIdx, ttk::Triangulation *triangulation, const bool getGlobalOrder=false, const int orderArrayIdx=0, const bool enforceOrderArrayIdx=false) |
vtkDataArray * | checkForGlobalAndComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *orderArray, ttk::Triangulation *triangulation, const bool enforceOrderArrayIdx) |
vtkDataArray * | ComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *oldOrderArray, ttk::Triangulation *triangulation) |
ttk::SimplexId * | GetIdentifierArrayPtr (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, std::vector< ttk::SimplexId > &spareStorage, const int inputPort=0, const bool printErr=true) |
ttk::Triangulation * | GetTriangulation (vtkDataSet *dataSet) |
int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) override |
vtkDataSet * | GetOutput () |
vtkDataSet * | GetOutput (int) |
void | SetInputData (vtkDataSet *) |
void | SetInputData (int, vtkDataSet *) |
void | AddInputData (vtkDataSet *) |
void | AddInputData (int, vtkDataSet *) |
template<typename inputType > | |
int | checkEmptyMPIInput (inputType *input) |
This method tests whether the input is a nullptr. If the computation is being done on multiple processes, it is possible that the domain of one process or more is empty, but not others, therefore in that particular case the rest of the filter will not be computed but an error message will not be sent. | |
![]() | |
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) |
Static Public Member Functions | |
static ttkPersistenceDiagramClustering * | New () |
static int | IsTypeOf (const char *type) |
static ttkPersistenceDiagramClustering * | SafeDownCast (vtkObject *o) |
![]() | |
static ttkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static ttkAlgorithm * | SafeDownCast (vtkObject *o) |
static std::string | GetOrderArrayName (vtkDataArray *const array) |
static vtkInformationIntegerKey * | SAME_DATA_TYPE_AS_INPUT_PORT () |
Protected Member Functions | |
ttkPersistenceDiagramClustering () | |
int | FillInputPortInformation (int port, vtkInformation *info) override |
int | FillOutputPortInformation (int port, vtkInformation *info) override |
void | Modified () override |
void | outputClusteredDiagrams (vtkMultiBlockDataSet *output, const std::vector< vtkUnstructuredGrid * > &diagsVTU, const std::vector< ttk::DiagramType > &diags, const std::vector< std::vector< std::vector< ttk::MatchingType > > > &matchingsPerCluster, const std::vector< int > &inv_clustering, const DISPLAY dm, const double spacing, const double max_persistence) const |
void | outputCentroids (vtkMultiBlockDataSet *output, const std::vector< ttk::DiagramType > &final_centroids, const std::vector< std::vector< std::vector< ttk::MatchingType > > > &matchingsPerCluster, vtkUnstructuredGrid *const someInputDiag, const DISPLAY dm, const double spacing, const double max_persistence) const |
void | outputMatchings (vtkMultiBlockDataSet *output, const size_t nClusters, const std::vector< ttk::DiagramType > &diags, const std::vector< std::vector< std::vector< ttk::MatchingType > > > &matchingsPerCluster, const std::vector< ttk::DiagramType > ¢roids, const std::vector< int > &inv_clustering, const ttkPersistenceDiagramClustering::DISPLAY dm, const double spacing, const double max_persistence) const |
int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override |
![]() | |
ttkAlgorithm () | |
~ttkAlgorithm () override | |
void | MPIGhostPipelinePreconditioning (vtkDataSet *input) |
void | MPIPipelinePreconditioning (vtkDataSet *input, std::vector< int > &neighbors, std::map< int, int > &neighToId, ttk::Triangulation *triangulation=nullptr) |
bool | checkGlobalIdValidity (ttk::LongSimplexId *globalIds, ttk::SimplexId simplexNumber, unsigned char *ghost, int *rankArray) |
int | GenerateGlobalIds (vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId) |
void | MPITriangulationPreconditioning (ttk::Triangulation *triangulation, vtkDataSet *input) |
virtual int | RequestDataObject (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) |
virtual int | RequestInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTime (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTimeDependentInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateExtent (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestDataNotGenerated (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestData (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
int | FillInputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
int | FillOutputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
![]() | |
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) |
![]() | |
PersistenceDiagramClustering () | |
~PersistenceDiagramClustering () override=default | |
std::vector< int > | execute (std::vector< DiagramType > &intermediateDiagrams, std::vector< DiagramType > ¢roids, std::vector< std::vector< std::vector< MatchingType > > > &all_matchings) |
std::array< double, 3 > | getDistances () const |
void | setTimeLimit (double timeLimit) |
void | setForceUseOfAlgorithm (bool forceUseOfAlgorithm) |
void | setDeltaLim (double DeltaLimNew) |
void | setUseAdditionalPrecision (bool Precision) |
void | setUseProgressive (bool UseProgressive_) |
void | setUseInterruptible (bool UseInterruptible_) |
void | setDeterministic (bool Deterministic_) |
void | setAlpha (double Alpha_) |
void | setUseAccelerated (bool UseAccelerated_) |
void | setUseKmeansppInit (bool UseKmeansppInit_) |
Additional Inherited Members | |
![]() | |
float | CompactTriangulationCacheSize {0.2f} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
![]() | |
std::array< double, 3 > | distances {} |
int | DistanceWritingOptions {0} |
int | PairTypeClustering {-1} |
bool | Deterministic {true} |
int | WassersteinMetric {2} |
bool | UseProgressive {true} |
bool | ForceUseOfAlgorithm {false} |
bool | UseInterruptible {true} |
double | Alpha {1.0} |
bool | UseAdditionalPrecision {false} |
double | DeltaLim {0.01} |
double | Lambda {1.0} |
double | TimeLimit {999999} |
double | NonMatchingWeight = 1.0 |
int | NumberOfClusters {1} |
bool | UseAccelerated {false} |
bool | UseKmeansppInit {false} |
int | points_added_ |
int | points_deleted_ |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package for the computation of Wasserstein barycenters and K-Means clusterings of a set of persistence diagrams.
Related publication
"Progressive Wasserstein Barycenters of Persistence Diagrams"
Jules Vidal, Joseph Budin and Julien Tierny
Proc. of IEEE VIS 2019.
IEEE Transactions on Visualization and Computer Graphics, 2019.
Online examples:
Definition at line 46 of file ttkPersistenceDiagramClustering.h.
Definition at line 53 of file ttkPersistenceDiagramClustering.h.
|
strong |
Enumerator | |
---|---|
COMPACT | |
STARS | |
MATCHINGS |
Definition at line 55 of file ttkPersistenceDiagramClustering.h.
|
strong |
Enumerator | |
---|---|
PROGRESSIVE | |
AUCTION |
Definition at line 61 of file ttkPersistenceDiagramClustering.h.
|
protected |
Definition at line 23 of file ttkPersistenceDiagramClustering.cpp.
|
overrideprotected |
Definition at line 28 of file ttkPersistenceDiagramClustering.cpp.
|
overrideprotected |
Definition at line 38 of file ttkPersistenceDiagramClustering.cpp.
|
virtual |
|
virtual |
Reimplemented from ttkAlgorithm.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Reimplemented from ttkAlgorithm.
|
static |
|
overrideprotected |
Definition at line 48 of file ttkPersistenceDiagramClustering.cpp.
|
static |
|
protected |
Definition at line 337 of file ttkPersistenceDiagramClustering.cpp.
|
protected |
Definition at line 212 of file ttkPersistenceDiagramClustering.cpp.
|
protected |
Definition at line 424 of file ttkPersistenceDiagramClustering.cpp.
|
overrideprotected |
Definition at line 53 of file ttkPersistenceDiagramClustering.cpp.
|
static |
|
inline |
Definition at line 75 of file ttkPersistenceDiagramClustering.h.
|
inline |
Definition at line 79 of file ttkPersistenceDiagramClustering.h.
|
virtual |
|
virtual |
|
inline |
Definition at line 118 of file ttkPersistenceDiagramClustering.h.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
inline |
Definition at line 108 of file ttkPersistenceDiagramClustering.h.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |