1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Horizontal lift from `R^n` to the tangent bundle via an orthonormal frame.
//!
//! Given a frame `r = (e_1, …, e_n)` at `p ∈ M` and a vector `ξ ∈ R^n`, the
//! horizontal lift of `ξ` at `(p, r)` has ground component `Σ ξ^i e_i ∈ T_p M`.
//! This is the fundamental vector field `H_i` (when `ξ = ê_i`) of the
//! principal `O(n)`-connection on the orthonormal frame bundle.
//!
//! Anti-development (the reverse direction) is the inverse operation: given
//! a tangent vector `u ∈ T_p M` and a frame `r`, the components of `u` in the
//! basis `r` are `ξ^i = <u, e_i>_p`. That operation is `Manifold::inner`
//! applied against each basis vector and does not require a dedicated helper.
use ;
use crateStochasticError;
use crateOrthonormalFrame;
/// Horizontal velocity of the frame bundle curve driven by `dW`.
///
/// Computes `u = Σ dW_i · e_i ∈ T_p M` where `e_i` are the frame basis vectors.
/// The result is the tangent-space velocity of the base-point component of a
/// curve in `O(M)` whose driving noise is `dW` in frame coordinates.
///
/// `dW.len()` must equal `frame.len()` (= intrinsic dim of `M`).