Euclidean space
The Euclidean space $โ^n$ is a simple model space, since it has curvature constantly zero everywhere; hence, nearly all operations simplify. The easiest way to generate an Euclidean space is to use a field, i.e. AbstractNumbers, e.g. to create the $โ^n$ or $โ^{nรn}$ you can simply type M = โ^n or โ^(n,n), respectively.
Manifolds.Euclidean โ Type
Euclidean{T,๐ฝ} <: AbstractManifold{๐ฝ}Euclidean vector space.
Constructor
Euclidean(n)Generate the $n$-dimensional vector space $โ^n$.
Euclidean(nโ,nโ,...,nแตข; field=โ, parameter::Symbol = :field)
๐ฝ^(nโ,nโ,...,nแตข) = Euclidean(nโ,nโ,...,nแตข; field=๐ฝ)Generate the vector space of $k = n_1 โ
n_2 โ
โฆ โ
n_i$ values, i.e. the manifold $๐ฝ^{n_1, n_2, โฆ, n_i}$, $๐ฝ\in\{โ,โ\}$, whose elements are interpreted as $n_1 ร n_2 ร โฆ ร n_i$ arrays. For $i=2$ we obtain a matrix space. The default field=โ can also be set to field=โ. The dimension of this space is $k \dim_โ ๐ฝ$, where $\dim_โ ๐ฝ$ is the real_dimension of the field $๐ฝ$.
parameter: whether a type parameter should be used to store n. By default size is stored in type. Value can either be :field or :type.
Euclidean(; field=โ)Generate the 1D Euclidean manifold for an โ-, โ-valued real- or complex-valued immutable values (in contrast to 1-element arrays from the constructor above).
LinearAlgebra.norm โ Function
norm(M::Euclidean, p, X, r::Real=2)Compute the norm of a tangent vector X at p on the Euclidean M, i.e. since every tangent space can be identified with M itself in this case, just the (Frobenius) norm of X. Specifying r, other norms are available as well
Manifolds.manifold_volume โ Method
manifold_volume(::Euclidean)Return volume of the Euclidean manifold, i.e. infinity.
Manifolds.volume_density โ Method
volume_density(M::Euclidean, p, X)Return volume density function of Euclidean manifold M, i.e. 1.
ManifoldsBase.Weingarten โ Method
Y = Weingarten(M::Euclidean, p, X, V)
Weingarten!(M::Euclidean, Y, p, X, V)Compute the Weingarten map $\mathcal W_p$ at p on the Euclidean M with respect to the tangent vector $X \in T_p\mathcal M$ and the normal vector $V \in N_p\mathcal M$.
Since this a flat space by itself, the result is always the zero tangent vector.
ManifoldsBase.distance โ Method
distance(M::Euclidean, p, q, r::Real=2)Compute the Euclidean distance between two points on the Euclidean manifold M, i.e. for vectors it's just the norm of the difference, for matrices and higher order arrays, the matrix and tensor Frobenius norm, respectively. Specifying further an rโ 2, other norms, like the 1-norm or the โ-norm can also be computed.
ManifoldsBase.embed โ Method
embed(M::Euclidean, p, X)Embed the tangent vector X at point p in M. Equivalent to an identity map.
ManifoldsBase.embed โ Method
embed(M::Euclidean, p)Embed the point p in M. Equivalent to an identity map.
ManifoldsBase.injectivity_radius โ Method
injectivity_radius(M::Euclidean)Return the injectivity radius on the Euclidean M, which is $โ$.
ManifoldsBase.inner โ Method
inner(M::Euclidean, p, X, Y)Compute the inner product on the Euclidean M, which is just the inner product on the real-valued or complex valued vector space of arrays (or tensors) of size $n_1 ร n_2 ร โฆ ร n_i$, i.e.
\[g_p(X,Y) = \sum_{k โ I} \overline{X}_{k} Y_{k},\]
where $I$ is the set of vectors $k โ โ^i$, such that for all
$i โค j โค i$ it holds $1 โค k_j โค n_j$ and $\overline{โ }$ denotes the complex conjugate.
For the special case of $i โค 2$, i.e. matrices and vectors, this simplifies to
\[g_p(X,Y) = \operatorname{tr}(X^{\mathrm{H}}Y),\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transposed.
ManifoldsBase.is_flat โ Method
is_flat(::Euclidean)Return true. Euclidean is a flat manifold.
ManifoldsBase.manifold_dimension โ Method
manifold_dimension(M::Euclidean)Return the manifold dimension of the Euclidean M, i.e. the product of all array dimensions and the real_dimension of the underlying number system.
ManifoldsBase.parallel_transport_direction โ Method
parallel_transport_direction(M::Euclidean, p, X, d)the parallel transport on Euclidean is the identity, i.e. returns X.
ManifoldsBase.parallel_transport_to โ Method
parallel_transport_to(M::Euclidean, p, X, q)the parallel transport on Euclidean is the identity, i.e. returns X.
ManifoldsBase.project โ Method
project(M::Euclidean, p, X)Project an arbitrary vector X into the tangent space of a point p on the Euclidean M, which is just the identity, since any tangent space of M can be identified with all of M.
ManifoldsBase.project โ Method
project(M::Euclidean, p)Project an arbitrary point p onto the Euclidean manifold M, which is of course just the identity map.
ManifoldsBase.representation_size โ Method
representation_size(M::Euclidean)Return the array dimensions required to represent an element on the Euclidean M, i.e. the vector of all array dimensions.
ManifoldsBase.riemann_tensor โ Method
riemann_tensor(M::Euclidean, p, X, Y, Z)Compute the Riemann tensor $R(X,Y)Z$ at point p on Euclidean manifold M. Its value is always the zero tangent vector.
ManifoldsBase.sectional_curvature โ Method
sectional_curvature(::Euclidean, p, X, Y)Sectional curvature of Euclidean manifold M is 0.
ManifoldsBase.sectional_curvature_max โ Method
sectional_curvature_max(::Euclidean)Sectional curvature of Euclidean manifold M is 0.
ManifoldsBase.sectional_curvature_min โ Method
sectional_curvature_min(M::Euclidean)Sectional curvature of Euclidean manifold M is 0.
ManifoldsBase.vector_transport_to โ Method
vector_transport_to(M::Euclidean, p, X, q, ::AbstractVectorTransportMethod)Transport the vector X from the tangent space at p to the tangent space at q on the Euclidean M, which simplifies to the identity.
ManifoldsBase.zero_vector โ Method
zero_vector(M::Euclidean, p)Return the zero vector in the tangent space of p on the Euclidean M, which here is just a zero filled array the same size as p.