Simple-Robotics / proxsuite-nlp

A primal-dual augmented Lagrangian solver for nonlinear programming on manifolds.
https://simple-robotics.github.io/proxsuite-nlp/
BSD 2-Clause "Simplified" License
57 stars 10 forks source link

Possibility of creating novel spaces/manifolds in python #107

Open costashatz opened 6 days ago

costashatz commented 6 days ago

Hello,

Thanks for the great library!

As far as I understand, there is no way of creating a new space/manifold in python. I want to do something like:

class MyNewSpace(manifolds.ManifoldAbstract):
    def __init__(self, n):
        self.nx = n
        self.ndx = n

    def neutral(self):
        return np.zeros((n,))

   # ...

Am I understanding the code and this limitation well? If yes, is there a timeline for adding this possibility? It can be handy in case someone wants to test some ideas for new representations quickly. If not, can you point me to a minimal example of how to create a novel space/manifold in python (it is rather obvious how to do this in C++)?

Thanks again!

ManifoldFR commented 6 days ago

Hello ! Thanks for your interest in the library.

We have no support for deriving manifold classes from Python yet. I think we could do that but it will have to be after we close one of open PRs which change everything. The API is not fully stable yet.

Also, we're not sure of how the algorithms behave yet on non-Lie group manifolds