Internal documentation
This page documents the internal types and methods of Manifolds.jl
's that might be of use for writing your own manifold.
Types
Manifolds.SizedAbstractArray
— TypeSizedAbstractArray{Tuple{dims...}}(array)
Wraps an AbstractArray
with a static size, so to take advantage of the (faster) methods defined by the static array package. The size is checked once upon construction to determine if the number of elements (length
) match, but the array may be reshaped.
Functions
Manifolds.eigen_safe
— Functioneigen_safe(x)
Compute the eigendecomposition of x
. If x
is a StaticMatrix
, it is converted to a Matrix
before the decomposition.
Manifolds.find_pv
— Functionfind_pv(x...)
A = find_pv(x...)
returns the first ProductArray
among the arguments.
Manifolds.log_safe
— Functionlog_safe(x)
Compute the matrix logarithm of x
. If x
is a StaticMatrix
, it is converted to a Matrix
before computing the log.
Manifolds.nzsign
— Functionnzsign(z[, absz])
Compute a modified sign(z)
that is always nonzero, i.e. where
Manifolds.size_to_tuple
— Functionsize_to_tuple(::Type{S}) where S<:Tuple
Converts a size given by Tuple{N, M, ...}
into a tuple (N, M, ...)
.
Manifolds.select_from_tuple
— Functionselect_from_tuple(t::NTuple{N, Any}, positions::Val{P})
Selects elements of tuple t
at positions specified by the second argument. For example select_from_tuple(("a", "b", "c"), Val((3, 1, 1)))
returns ("c", "a", "a")
.
Manifolds.usinc
— Functionusinc(θ::Real)
Unnormalized version of sinc
function, i.e. $\operatorname{usinc}(θ) = \frac{\sin(θ)}{θ}$. This is equivalent to sinc(θ/π)
.
Manifolds.usinc_from_cos
— Functionusinc_from_cos(x::Real)
Unnormalized version of sinc
function, i.e. $\operatorname{usinc}(θ) = \frac{\sin(θ)}{θ}$, computed from $x = cos(θ)$.
Manifolds.ziptuples
— Functionziptuples(a, b[, c[, d[, e]]])
Zips tuples a
, b
, and remaining in a fast, type-stable way. If they have different lengths, the result is trimmed to the length of the shorter tuple.