Differentials
Manopt.differential_bezier_control
— Methoddifferential_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].
Manopt.differential_bezier_control
— Methoddifferential_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.
Manopt.differential_bezier_control
— Methoddifferential_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.
Manopt.differential_bezier_control
— Methoddifferential_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.
Manopt.differential_exp_argument
— Methoddifferential_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.
See also
Manopt.differential_exp_basepoint
— Methoddifferential_exp_basepoint(M, p, X, Y)
differential_exp_basepoint!(M, Z, p, X, Y)
Compute $D_p\exp_p X[Y]$ (in place of Z
).
See also
Manopt.differential_forward_logs
— MethodY = 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
– aPowerManifold
manifoldp
– 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 tosize(x)
. The computation can also be done in place.
Manopt.differential_geodesic_endpoint
— Methoddifferential_geodesic_endpoint(M, p, q, t, X)
differential_geodesic_endpoint!(M, Y, p, q, t, X)
computes $D_qg(t;p,q)[X]$ (in place of Y
).
See also
Manopt.differential_geodesic_startpoint
— Methoddifferential_geodesic_startpoint(M, p, q, t, X)
differential_geodesic_startpoint!(M, Y, p, q, t, X)
computes $D_p g(t;p,q)[η]$ (in place of Y
).
See also
Manopt.differential_log_argument
— Methoddifferential_log_argument(M, p, q, X)
differential_log_argument(M, Y, p, q, X)
computes $D_q\log_pq[X]$ (in place of Y
).
See also
Manopt.differential_log_basepoint
— Methoddifferential_log_basepoint(M, p, q, X)
differential_log_basepoint!(M, Y, p, q, X)
computes $D_p\log_pq[X]$ (in place of Y
).
See also
- BergmannGousenbourger2018
Bergmann, R. and Gousenbourger, P.-Y.: A variational model for data fitting on manifolds by minimizing the acceleration of a Bézier curve. Frontiers in Applied Mathematics and Statistics, 2018. doi: 10.3389/fams.2018.00059, arXiv: 1807.10090