Skip to content

Add gudhi backend #39

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 10 commits into
base: rc-0.2.0
Choose a base branch
from

Conversation

catanzaromj
Copy link

This PR will add gudhi as a computational backend for now. We'll keep the code extensible for other backends and we'll try to add another in an upcoming PR.

@catanzaromj catanzaromj self-assigned this Mar 24, 2025
@catanzaromj catanzaromj added the enhancement New feature or request label Mar 24, 2025
@ctralie
Copy link
Member

ctralie commented Mar 24, 2025

Thanks for doing all of this!
Just one comment about the philosophy of cechmate: back in 2018, GUDHI used to be a lot harder to install, so I quickly whipped up something to do alpha filtrations on my own with phat as a backend, which was easier to install at the time. But GUDHI is now much easier to install, and it does a nice job of alpha and cech filtrations already. So we should think about the utility of this library. Perhaps it would be useful if there's some even lighter weight reduction library in the background. But we'd still have to fix issue#14 #14

@catanzaromj
Copy link
Author

Thanks for the context @ctralie. I agree that gudhi has come a long way since then. As I do this refactor, I realize how much more mature and built out it is. I think you are correct about gudhi with respect to alpha, Cech, and maybe even extended filtrations/persistence.

Maybe the point isn't to be the best computational library available but rather, pedagogical for both mathematics and python code. I really like the idea of providing an open source library useful to non-topologists but also non-programmers. I think some of gudhi's documentation is lacking and the underlying C++ documentation is doxygen based, which I'm also not a fan of. I keep thinking we should do the bare minimum here to get a working package again and then gently push people toward gudhi's implementations for the heavier things. Of course, I'm happy to modify or abandon this plan as you see fit.

I also hope that you can expand on this comment:

Perhaps it would be useful if there's some even lighter weight reduction library in the background.

@ctralie
Copy link
Member

ctralie commented Mar 24, 2025

I totally agree with this philosophy @catanzaromj. I would love to see a fully fledged alpha filtration with simple python libraries that we can completely explain, especially if we can fix this numerical precision bug.

As for the reduction library, I was just speculating. Is there some simple reduction library that uses some of the tricks that phat does? Or perhaps we could code one ourselves? I'm not up on the current software ecosystem for tda

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants