119#include <type_traits>
133 template <
typename dataType,
typename triangulationType>
134 int execute(
const dataType *
const inputScalars,
135 dataType *
const outputScalars,
140 const bool addPerturbation,
141 triangulationType &triangulation,
170 "Error, the backend for topological simplification is invalid");
225template <
typename dataType,
typename triangulationType>
227 const dataType *
const inputScalars,
228 dataType *
const outputScalars,
233 const bool addPerturbation,
234 triangulationType &triangulation,
240 outputScalars, offsets, &triangulation, identifiers, constraintNumber,
244 inputOffsets, offsets, constraintNumber,
269 &triangulation, constraintDiagram);
272 "Error, the backend for topological simplification is invalid");
AbstractTriangulation is an interface class that defines an interface for efficient traversal methods...
virtual int setThreadNumber(const int threadNumber)
Minimalist debugging class.
virtual int setDebugLevel(const int &debugLevel)
int printErr(const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
TTK processing package for the topological simplification of scalar data.
int preconditionTriangulation(AbstractTriangulation *triangulation)
int execute(const dataType *const inputScalars, dataType *const outputScalars, const SimplexId *const identifiers, const SimplexId *const inputOffsets, SimplexId *const offsets, const SimplexId constraintNumber, const triangulationType &triangulation) const
void setMethodOptimization(int methodOptimization)
void setLearningRate(double learningRate)
void setFinePairManagement(int finePairManagement)
void setAlpha(double alpha)
void setThresholdMethod(int thresholdMethod)
void setChooseLearningRate(int chooseLearningRate)
void setFastAssignmentUpdate(bool FastAssignmentUpdate)
int preconditionTriangulation(AbstractTriangulation *triangulation)
void setPDCMethod(int PDCMethod)
void setLowerThreshold(int lowerThreshold)
void setConstraintAveraging(bool ConstraintAveraging)
void setPrintFrequency(int printFrequency)
void setThresholdPersistence(double thresholdPersistence)
void setEpochNumber(int EpochNumber)
void setPairTypeToDelete(int pairTypeToDelete)
void setUpperThreshold(int upperThreshold)
void setOptimizationWithoutMatching(bool optimizationWithoutMatching)
void setCoefStopCondition(double coefStopCondition)
void setUseFastPersistenceUpdate(bool UseFastPersistenceUpdate)
int execute(const dataType *const inputScalars, dataType *const outputScalars, SimplexId *const inputOffsets, triangulationType *triangulation, const ttk::DiagramType &constraintDiagram) const
TTK processing package for the topological simplification of scalar data.
LegacyTopologicalSimplification legacyObject_
int preconditionTriangulation(AbstractTriangulation *triangulation)
bool FastAssignmentUpdate
lts::LocalizedTopologicalSimplification ltsObject_
bool UseFastPersistenceUpdate
int execute(const dataType *const inputScalars, dataType *const outputScalars, const SimplexId *const identifiers, const SimplexId *const inputOffsets, SimplexId *const offsets, const SimplexId constraintNumber, const bool addPerturbation, triangulationType &triangulation, const ttk::DiagramType &constraintDiagram={})
TopologicalSimplification()
ttk::TopologicalOptimization topologyOptimizer_
bool OptimizationWithoutMatching
void setBackend(const BACKEND arg)
int preconditionTriangulation(ttk::AbstractTriangulation *triangulation) const
int removeUnauthorizedExtrema(DT *scalars, IT *order, const TT *triangulation, const IT *authorizedExtremaIndices, const IT &nAuthorizedExtremaIndices, const bool &computePerturbation) const
std::vector< PersistencePair > DiagramType
Persistence Diagram type as a vector of Persistence pairs.
int SimplexId
Identifier type for simplices of any dimension.