Differentials

Manopt.differential_bezier_controlMethod
differential_bezier_control(
    M::AbstractManifold,
    B::AbstractVector{<:BezierSegment},
    T::AbstractVector
    Ξ::AbstractVector{<:BezierSegment}
)
differential_bezier_control!(
    M::AbstractManifold,
    Θ::AbstractVector{<:BezierSegment}
    B::AbstractVector{<:BezierSegment},
    T::AbstractVector
    Ξ::AbstractVector{<:BezierSegment}
)

evaluate the differential of the composite Bézier curve with respect to its control points B and tangent vectors Ξ in the tangent spaces of the control points. The result is the “change” of the curve at the points in T, which are elementwise in $[0,N]$, and each depending the corresponding segment(s). Here, $N$ is the length of B. For the mutating variant the result is computed in Θ.

See de_casteljau for more details on the curve and [BergmannGousenbourger2018].

source
Manopt.differential_bezier_controlMethod
differential_bezier_control(
    M::AbstractManifold,
    B::AbstractVector{<:BezierSegment},
    t,
    X::AbstractVector{<:BezierSegment}
)
differential_bezier_control!(
    M::AbstractManifold,
    Y::AbstractVector{<:BezierSegment}
    B::AbstractVector{<:BezierSegment},
    t,
    X::AbstractVector{<:BezierSegment}
)

evaluate the differential of the composite Bézier curve with respect to its control points B and tangent vectors Ξ in the tangent spaces of the control points. The result is the “change” of the curve at t$∈[0,N]$, which depends only on the corresponding segment. Here, $N$ is the length of B. The computation can be done in place of Y.

See de_casteljau for more details on the curve.

source
Manopt.differential_bezier_controlMethod
differential_bezier_control(
    M::AbstractManifold,
    b::BezierSegment,
    T::AbstractVector,
    X::BezierSegment,
)
differential_bezier_control!(
    M::AbstractManifold,
    Y,
    b::BezierSegment,
    T::AbstractVector,
    X::BezierSegment,
)

evaluate the differential of the Bézier curve with respect to its control points b and tangent vectors X in the tangent spaces of the control points. The result is the “change” of the curve at the points T, elementwise in $t∈[0,1]$. The computation can be done in place of Y.

See de_casteljau for more details on the curve.

source
Manopt.differential_bezier_controlMethod
differential_bezier_control(M::AbstractManifold, b::BezierSegment, t::Float, X::BezierSegment)
differential_bezier_control!(
    M::AbstractManifold,
    Y,
    b::BezierSegment,
    t,
    X::BezierSegment
)

evaluate the differential of the Bézier curve with respect to its control points b and tangent vectors X given in the tangent spaces of the control points. The result is the “change” of the curve at t$∈[0,1]$. The computation can be done in place of Y.

See de_casteljau for more details on the curve.

source
Manopt.differential_forward_logsMethod
Y = differential_forward_logs(M, p, X)
differential_forward_logs!(M, Y, p, X)

compute the differential of forward_logs $F$ on the PowerManifold manifold M at p and direction X , in the power manifold array, the differential of the function

\[F_i(x) = \sum_{j ∈ \mathcal I_i} \log_{p_i} p_j, \quad i ∈ \mathcal G,\]

where $\mathcal G$ is the set of indices of the PowerManifold manifold M and $\mathcal I_i$ denotes the forward neighbors of $i$.

Input

  • M – a PowerManifold manifold
  • p – a point.
  • X – a tangent vector.

Ouput

  • Y – resulting tangent vector in $T_x\mathcal N$ representing the differentials of the logs, where $\mathcal N$ is the power manifold with the number of dimensions added to size(x). The computation can also be done in place.
source