topology-tool-kit / ttk

TTK - Topological Data Analysis and Visualization - Source Code
https://topology-tool-kit.github.io/
Other
406 stars 120 forks source link

add Topological Optimization code #1043

Open MohamedKISSI opened 1 week ago

MohamedKISSI commented 1 week ago

Integration of the code for topological simplification based on persistence diagram optimization.

julien-tierny commented 1 week ago

Hi Mohamed, thanks a lot for this PR.

At this point, the PR doesn't pass the continuous integration (CI), which stopped on a third-party dependency issue (here, torch). As you will read in this documentation (https://github.com/topology-tool-kit/ttk/wiki/Guidelines-for-Developing-a-New-TTK-Module), TTK must build and run even when third-party dependencies haven't been found.

This means that your code should build and run, even if torch is not installed. In particular, if the optimization backend selected by the user was Adam and that Torch was not installed, you should display a warning (printWrn) explaining that Adam cannot be used because Torch hasn't been found and that the code will now default to direct gradient descent.

To know in your C++ code if Torch has been found or not, use the preprocessor instruction #ifdef TTK_ENABLE_TORCH (see https://github.com/topology-tool-kit/ttk/blob/dev/core/base/mergeTreeAutoencoder/MergeTreeAutoencoder.h for an example).

Please proceed to this change and fix any issue until the CI succeeds. Thanks