Skip to content
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

Get rid of Manifold abstract supertype? #1017

Open
jecs opened this issue Oct 26, 2022 · 4 comments
Open

Get rid of Manifold abstract supertype? #1017

jecs opened this issue Oct 26, 2022 · 4 comments

Comments

@jecs
Copy link

jecs commented Oct 26, 2022

Hi, I was trying out the manifold functionality in Optim.jl. It's nifty. However, I noticed that in order to use it, you need to not only define the methods retract! and project_tangent! but also need to subtype the abstract Manifold type.

Is it really necessary to subtype the Manifold type if you need to define those methods anyway? Why not drop that requirement altogether, similar to the way that ProximalOperators.jl only requires you to define prox! and grad!?

@pkofod
Copy link
Member

pkofod commented Nov 23, 2022

That is possible, yes. Abstract types can be useful for fallbacks, but that's probably not too relevant as you say, as you have to define the manifold specific methods anyway.

@pkofod
Copy link
Member

pkofod commented Nov 23, 2022

It might be used for dispatch at a higher level somewhere, I'm not sure.

@mateuszbaran
Copy link

I think the plan is to transition to Manifolds.jl: JuliaManifolds/Manifolds.jl#35 . There is more than these two functions that can be useful for manifold optimization.

@kellertuer
Copy link

Which manifold did you have in mind? Besides Optim transitioning to support also the manifolds as Mateusz mentioned, you might also want to check https://github.com/JuliaManifolds/Manopt.jl (disclaimer – a package I develop).

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

No branches or pull requests

4 participants