Manifolds are mathematical sets with a smooth geometry, such as spheres. If you are facing a possibly non-convex optimization problem with nice-looking constraints, symmetries or invariance properties, Manopt may just be the tool for you. Check out the man­i­folds lib­rary to find out! Moreover, since linear spaces are manifolds, Manopt is especially convenient for optimization over matrices.

Manopt comes with a large library of manifolds and ready-to-use Riemannian optimization algorithms. It is well documented and includes diagnostics tools to help you get started quickly with barely any prerequisites in optimization and geometry. Feel free to ask questions on the forum . To learn more about the mathematical foundations, see the two books and other resources linked on the about page.

It's open source

Let us know how you use Manopt, and tell us about bugs or missing features by opening issues on our GitHub pages. Please cite the toolbox according to the language you use: Matlab, Python, Julia (click for BibTex).

@Article{manopt, author = {Boumal, N. and Mishra, B. and Absil, P.-A. and Sepulchre, R.}, journal = {Journal of Machine Learning Research}, title = {{M}anopt, a {M}atlab Toolbox for Optimization on Manifolds}, year = {2014}, number = {42}, pages = {1455--1459}, volume = {15}, url = {https://www.manopt.org}, }

@Article{pymanopt, author = {Townsend, J. and Koep, N. and Weichwald, S.}, journal = {Journal of Machine Learning Research}, title = {{P}y{M}anopt: a {P}ython toolbox for optimization on manifolds using automatic differentiation}, year = {2016}, number = {137}, pages = {1--5}, volume = {17}, url = {https://www.pymanopt.org}, }

@Online{manoptjl, author = {Bergmann, R.}, title = {Manopt.jl}, year = {2019}, url = {https://www.manoptjl.org}, urldate = {2019}, }