For a function $f:\mathcal M→ℝ$ the Riemannian gradient $\operatorname{grad}f(x)$ at $x∈\mathcal M$ is given by the unique tangent vector fulfilling

$\langle \operatorname{grad}f(x), ξ\rangle_x = D_xf[ξ],\quad \forall ξ ∈ T_x\mathcal M,$

where $D_xf[ξ]$ denotes the differential of $f$ at $x$ with respect to the tangent direction (vector) $ξ$ or in other words the directional derivative.

Manopt.forward_logsMethod
Y = forward_logs(M,x)
forward_logs!(M, Y, x)

compute the forward logs $F$ (generalizing forward differences) occurring, in the power manifold array, the function

$F_i(x) = \sum_{j ∈ \mathcal I_i} \log_{x_i} x_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$. This can also be done in place of ξ.

Input

• M – a PowerManifold manifold
• x – a point.

Ouput

• Y – resulting tangent vector in $T_x\mathcal M$ representing the logs, where $\mathcal N$ is thw power manifold with the number of dimensions added to size(x). The computation can be done in place of Y.
source
Manopt.grad_L2_acceleration_bezierMethod
grad_L2_acceleration_bezier(
M::AbstractManifold,
B::AbstractVector{P},
degrees::AbstractVector{<:Integer},
T::AbstractVector,
λ,
d::AbstractVector{P}
) where {P}

compute the gradient of the discretized acceleration of a composite Bézier curve on the Manifold M with respect to its control points B together with a data term that relates the junction points p_i to the data d with a weight $λ$ compared to the acceleration. The curve is evaluated at the points given in pts (elementwise in $[0,N]$), where $N$ is the number of segments of the Bézier curve. The summands are grad_distance for the data term and grad_acceleration_bezier for the acceleration with interpolation constrains. Here the get_bezier_junctions are included in the optimization, i.e. setting $λ=0$ yields the unconstrained acceleration minimization. Note that this is ill-posed, since any Bézier curve identical to a geodesic is a minimizer.

Note that the Beziér-curve is given in reduces form as a point on a PowerManifold, together with the degrees of the segments and assuming a differentiable curve, the segments can internally be reconstructed.

source
Manopt.grad_TVFunction
X = grad_TV(M, λ, x[, p=1])
grad_TV!(M, X, λ, x[, p=1])

Compute the (sub)gradient $\partial F$ of all forward differences occurring, in the power manifold array, i.e. of the function

$F(x) = \sum_{i}\sum_{j ∈ \mathcal I_i} d^p(x_i,x_j)$

where $i$ runs over all indices of the PowerManifold manifold M and $\mathcal I_i$ denotes the forward neighbors of $i$.

Input

• M – a PowerManifold manifold
• x – a point.

Ouput

• X – resulting tangent vector in $T_x\mathcal M$. The computation can also be done in place.
source
Manopt.grad_TVMethod
X = grad_TV(M, (x,y)[, p=1])
grad_TV!(M, X, (x,y)[, p=1])

compute the (sub) gradient of $\frac{1}{p}d^p_{\mathcal M}(x,y)$ with respect to both $x$ and $y$ (in place of X and Y).

source
Manopt.grad_TV2Function
grad_TV2(M::PowerManifold, q[, p=1])

computes the (sub) gradient of $\frac{1}{p}d_2^p(q_1,q_2,q_3)$ with respect to all $q_1,q_2,q_3$ occurring along any array dimension in the point q, where M is the corresponding PowerManifold.

source
Manopt.grad_TV2Function
Y = grad_TV2(M, q[, p=1])
grad_TV2!(M, Y, q[, p=1])

computes the (sub) gradient of $\frac{1}{p}d_2^p(q_1, q_2, q_3)$ with respect to all three components of $q∈\mathcal M^3$, where $d_2$ denotes the second order absolute difference using the mid point model, i.e. let

$\mathcal C = \bigl\{ c ∈ \mathcal M \ |\ g(\tfrac{1}{2};q_1,q_3) \text{ for some geodesic }g\bigr\}$

denote the mid points between $q_1$ and $q_3$ on the manifold $\mathcal M$. Then the absolute second order difference is defined as

$d_2(q_1,q_2,q_3) = \min_{c ∈ \mathcal C_{q_1,q_3}} d(c, q_2).$

While the (sub)gradient with respect to $q_2$ is easy, the other two require the evaluation of an adjoint_Jacobi_field. See Illustration of the Gradient of a Second Order Difference for its derivation.

source
Manopt.grad_acceleration_bezierMethod
grad_acceleration_bezier(
M::AbstractManifold,
B::AbstractVector,
degrees::AbstractVector{<:Integer}
T::AbstractVector
)

compute the gradient of the discretized acceleration of a (composite) Bézier curve $c_B(t)$ on the Manifold M with respect to its control points B given as a point on the PowerManifold assuming C1 conditions and known degrees. The curve is evaluated at the points given in T (elementwise in $[0,N]$, where $N$ is the number of segments of the Bézier curve). The get_bezier_junctions are fixed for this gradient (interpolation constraint). For the unconstrained gradient, see grad_L2_acceleration_bezier and set $λ=0$ therein. This gradient is computed using adjoint_Jacobi_fields. For details, see [BergmannGousenbourger2018]. See de_casteljau for more details on the curve.

source
Manopt.grad_distanceFunction
grad_distance(M,y,x[, p=2])
grad_distance!(M,X,y,x[, p=2])

compute the (sub)gradient of the distance (squared), in place of X.

$f(x) = \frac{1}{2} d^p_{\mathcal M}(x,y)$

to a fixed point y on the manifold M and p is an integer. The gradient reads

$\operatorname{grad}f(x) = -d_{\mathcal M}^{p-2}(x,y)\log_xy$

for $p\neq 1$ or $x\neq y$. Note that for the remaining case $p=1$, $x=y$ the function is not differentiable. In this case, the function returns the corresponding zero tangent vector, since this is an element of the subdifferential.

Optional

• p – (2) the exponent of the distance, i.e. the default is the squared distance
source
Manopt.grad_intrinsic_infimal_convolution_TV12Method
grad_u,⁠ grad_v = grad_intrinsic_infimal_convolution_TV12(M, f, u, v, α, β)

compute (sub)gradient of the intrinsic infimal convolution model using the mid point model of second order differences, see costTV2, i.e. for some $f ∈ \mathcal M$ on a PowerManifold manifold $\mathcal M$ this function computes the (sub)gradient of

$E(u,v) = \frac{1}{2}\sum_{i ∈ \mathcal G} d_{\mathcal M}(g(\frac{1}{2},v_i,w_i),f_i) + \alpha \bigl( β\mathrm{TV}(v) + (1-β)\mathrm{TV}_2(w) \bigr),$

where both total variations refer to the intrinsic ones, grad_TV and grad_TV2, respectively.

source