JuliaNLSolvers / ManifoldProjections.jl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Note: this package is not under active development. Check out https://github.com/JuliaManifolds/Manifolds.jl instead.

A Julia library to handle projections on manifolds. This is useful for minimizing functions or solving differential equations defined on manifolds.

Currently, the sphere {x ∈ K^n, ||x|| = r} and the Stiefel manifold {X ∈ K^{n × m}, X'*X = I} as well as independent copies of these manifolds are supported.

Example usage:

using ManifoldProjections

x = randn(4)
M = Sphere() # create sphere with r = 1
retract!(M,x)
@assert norm(x)  1
v = randn(4)
project_tangent!(M,v,x)
@assert abs(v'*x) < 1e-8

About

License:MIT License


Languages

Language:Julia 100.0%