# 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_exp_argumentMethod
differential_exp_argument(M, p, X, Y)
differential_exp_argument!(M, Z, p, X, Y)

computes $D_X\exp_pX[Y]$ (in place of Z). Note that $X ∈ T_X(T_p\mathcal M) = T_p\mathcal M$ is still a tangent vector.

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