## Manopt.jl

🏔️Manopt. jl – Optimization on Manifolds in Julia
Popularity
242 Stars
Updated Last
10 Months Ago
Started In
November 2016

# Manopt.jl

Optimization Algorithm on Riemannian Manifolds.

For a function \$f: ℳ → ℝ\$ that maps from a Riemannian manifold ℳ to the real line, we aim to solve

Find the minimizer p on ℳ, i.e. the (or a) point where f attains its minimum.

`Manopt.jl` provides

• A framework to implement arbitrary optimization algorithms on Riemannian Manifolds
• A library of optimization algorithms on Riemannian manifolds
• an easy-to-use interface for (debug) output and recording values during an algorithm run.
• several tools to investigate the algorithms, gradients, and optimality criteria

## Getting started

In Julia you can get started by just typing

`using Pkg; Pkg.add("Manopt");`

and then checkout the Get Started: Optimize! tutorial.

## Related packages

Manopt.jl is based on `ManifoldsBase.jl`, hence the algorithms can be used with any manifold following this interface for defining a Riemannian manifold.

The following packages are related to `Manopt.jl`

`Manopt.jl` belongs to the Manopt family:

but there are also more packages providing tools on manifolds:

## Citation

If you use `Manopt.jl` in your work, please cite the following

``````@article{Bergmann2022,
Author    = {Ronny Bergmann},
Doi       = {10.21105/joss.03866},
Journal   = {Journal of Open Source Software},
Number    = {70},
Pages     = {3866},
Publisher = {The Open Journal},
Title     = {Manopt.jl: Optimization on Manifolds in {J}ulia},
Volume    = {7},
Year      = {2022},
}
``````

To refer to a certain version or the source code in general we recommend to cite for example

``````@software{manoptjl-zenodo-mostrecent,
Author = {Ronny Bergmann},