Skip to content

hajg-ijk/Manopt.jl

 
 

Repository files navigation

Manopt.jl

Optimization Algorithm on Riemannian Manifolds.

Code Style: Blue CI codecov DOI DOI

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

Find the minimizer x 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.

Manopt.jl is based on ManifoldsBase.jl, hence the algorithms can be used with any manifold defined e.g. within Manifolds.jl.

Further Packages & Links

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},
    Copyright = {MIT License},
    Doi = {10.5281/zenodo.4290905},
    Publisher = {Zenodo},
    Title = {Manopt.jl},
    Year = {2022},
}

for the most recent version or a corresponding version specific DOI, see the list of all versions. Note that both citations are in BibLaTeX format.

About

Optimization on Manifolds in Julia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 62.1%
  • Asymptote 37.4%
  • TeX 0.5%