Circle
Manifolds.Circle
โ TypeCircle{๐ฝ} <: AbstractManifold{๐ฝ}
The circle is a manifold here represented by real-valued points in or complex-valued points of absolute value .
Constructor
Circle(๐ฝ=โ)
Generate the โ
-valued Circle represented by angles, which alternatively can be set to use the AbstractNumbers
๐ฝ=โ
to obtain the circle represented by โ
-valued circle of unit numbers.
Base.exp
โ Methodexp(M::Circle, p, X)
Compute the exponential map on the Circle
.
where is the (symmetric) remainder with respect to division by , i.e. in .
For the complex-valued case, the same formula as for the Sphere
is applied to values in the complex plane.
Base.log
โ Methodlog(M::Circle, p, q)
Compute the logarithmic map on the Circle
M
.
where is the (symmetric) remainder with respect to division by , i.e. in .
For the complex-valued case, the same formula as for the Sphere
is applied to values in the complex plane.
Base.rand
โ MethodRandom.rand(M::Circle{โ}; vector_at = nothing, ฯ::Real=1.0)
If vector_at
is nothing
, return a random point on the Circle
by picking a random element from uniformly.
If vector_at
is not nothing
, return a random tangent vector from the tangent space of the point vector_at
on the Circle
by using a normal distribution with mean 0 and standard deviation ฯ
.
Manifolds.complex_dot
โ Methodcomplex_dot(a, b)
Compute the inner product of two (complex) numbers with in the complex plane.
Manifolds.manifold_volume
โ Methodmanifold_volume(M::Circle)
Return the volume of the Circle
M
, i.e. .
Manifolds.sym_rem
โ Methodsym_rem(x,[T=ฯ])
Compute symmetric remainder of x
with respect to the interall 2*T
, i.e. (x+T)%2T
, where the default for T
is
Manifolds.volume_density
โ Methodvolume_density(::Circle, p, X)
Return volume density of Circle
, i.e. 1.
ManifoldsBase.check_point
โ Methodcheck_point(M::Circle, p)
Check whether p
is a point on the Circle
M
. For the real-valued case, p
is an angle and hence it checks that . for the complex-valued case, it is a unit number, with .
ManifoldsBase.check_vector
โ Methodcheck_vector(M::Circle, p, X; kwargs...)
Check whether X
is a tangent vector in the tangent space of p
on the Circle
M
. For the real-valued case represented by angles, all X
are valid, since the tangent space is the whole real line. For the complex-valued case X
has to lie on the line parallel to the tangent line at p
in the complex plane, i.e. their inner product has to be zero.
ManifoldsBase.distance
โ Methoddistance(M::Circle, p, q)
Compute the distance on the Circle
M
, which is the absolute value of the symmetric remainder of p
and q
for the real-valued case and the angle between both complex numbers in the Gaussian plane for the complex-valued case.
ManifoldsBase.embed
โ Methodembed(M::Circle, p, X)
Embed a tangent vector X
at p
on Circle
M
in the ambient space. It returns X
.
ManifoldsBase.embed
โ Methodembed(M::Circle, p)
Embed a point p
on Circle
M
in the ambient space. It returns p
.
ManifoldsBase.get_coordinates
โ Methodget_coordinates(M::Circle{โ}, p, X, B::DefaultOrthonormalBasis)
Return tangent vector coordinates in the Lie algebra of the Circle
.
ManifoldsBase.get_vector_orthonormal
โ Methodget_vector(M::Circle{โ}, p, X, B::DefaultOrthonormalBasis)
Return tangent vector from the coordinates in the Lie algebra of the Circle
.
ManifoldsBase.injectivity_radius
โ Methodinjectivity_radius(M::Circle[, p])
Return the injectivity radius on the Circle
M
, i.e. .
ManifoldsBase.inner
โ Methodinner(M::Circle, p, X, Y)
Compute the inner product of the two tangent vectors X,Y
from the tangent plane at p
on the Circle
M
using the restriction of the metric from the embedding, i.e.
for the real case and
for the complex case interpreting complex numbers in the Gaussian plane.
ManifoldsBase.is_flat
โ Methodis_flat(::Circle)
Return true. Circle
is a flat manifold.
ManifoldsBase.manifold_dimension
โ Methodmanifold_dimension(M::Circle)
Return the dimension of the Circle
M
, i.e. .
ManifoldsBase.parallel_transport_to
โ Method parallel_transport_to(M::Circle, p, X, q)
Compute the parallel transport of X
from the tangent space at p
to the tangent space at q
on the Circle
M
. For the real-valued case this results in the identity. For the complex-valued case, the formula is the same as for the Sphere
(1)
in the complex plane.
where log
denotes the logarithmic map on M
.
ManifoldsBase.project
โ Methodproject(M::Circle, p, X)
Project a value X
onto the tangent space of the point p
on the Circle
M
.
For the real-valued case this is just the identity. For the complex valued case X
is projected onto the line in the complex plane that is parallel to the tangent to p
on the unit circle and contains 0
.
ManifoldsBase.project
โ Methodproject(M::Circle, p)
Project a point p
onto the Circle
M
. For the real-valued case this is the remainder with respect to modulus . For the complex-valued case the result is the projection of p
onto the unit circle in the complex plane.
Statistics.mean
โ Methodmean(M::Circle{โ}, x::AbstractVector[, w::AbstractWeights])
Compute the Riemannian mean
of x
of points on the Circle
, represented by complex numbers, i.e. embedded in the complex plane. Comuting the sum
the mean is the angle of the complex number , so represented in the complex plane as , whenever .
If the sum , the mean is not unique. For example for opposite points or equally spaced angles.
Statistics.mean
โ Methodmean(M::Circle{โ}, x::AbstractVector[, w::AbstractWeights])
Compute the Riemannian mean
of x
of points on the Circle
, represented by real numbers, i.e. the angular mean