Differentiation backends

EmbeddedDiff

ManifoldDiff.ExplicitEmbeddedBackendType
ExplicitEmbeddedBackend{TF<:NamedTuple} <: AbstractDiffBackend

A backend to use with the RiemannianProjectionBackend or the TangentDiffBackend, when you have explicit formulae for the gradient in the embedding available.

Constructor

ExplicitEmbeddedBackend(M::AbstractManifold; kwargs)

Construct an ExplicitEmbeddedBackend in the embedding M, where currently the following keywords may be used

  • gradient for a(n allocating) gradient function gradient(M, p) defined in the embedding
  • gradient! for a mutating gradient function gradient!(M, X, p).

Note that the gradient functions are defined on the embedding manifold M passed to the Backend as well

source

ForwardDiff.jl

FiniteDiff.jl

ManifoldDiff.FiniteDiffBackendType
FiniteDiffBackend <: AbstractDiffBackend

A type to specify / use differentiation backend based on FiniteDiff.jl package.

Constructor

FiniteDiffBackend(method::Val{Symbol} = Val{:central})
source

FiniteDifferenes.jl