Skip to content

Commit

Permalink
Merge branch 'master' into mbaran/fix-fd-failure
Browse files Browse the repository at this point in the history
  • Loading branch information
mateuszbaran committed Jun 11, 2024
2 parents e26157b + b0008c0 commit 1fe101b
Show file tree
Hide file tree
Showing 43 changed files with 83 additions and 79 deletions.
2 changes: 1 addition & 1 deletion CITATION.bib
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ @article{AxenBaranBergmannRzecki:2023
TITLE = {Manifolds.jl: An Extensible {J}ulia Framework for Data Analysis on Manifolds},
YEAR = {2023}
}
@softawre{manifoldsjl-zenodo-mostrecent,
@software{manifoldsjl-zenodo-mostrecent,
AUTHOR = {Seth D. Axen and Mateusz Baran and Ronny Bergmann},
TITLE = {Manifolds.jl},
DOI = {10.5281/ZENODO.4292129},
Expand Down
6 changes: 5 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

* fixed a few typos in the doc string of the SPD fixed determinant description.
* Updated `Project.toml` compatibility entries.

### Fixed

* a few typos in the doc string of the SPD fixed determinant description
* several other typographical errors throughout the documentation

## [0.9.18] – 2024-05-07

### Added
Expand Down
2 changes: 1 addition & 1 deletion _quarto.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

project:
title: "Manonifolds.jl"
title: "Manifolds.jl"
#execute-dir: project

crossref:
Expand Down
4 changes: 2 additions & 2 deletions accuracy/Hyperboloid.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ cd(@__DIR__)
Pkg.activate("."); # for reproducibility use the local accuracy environment.
```

In this small note we compare different implementations of several functions on the [Hyperboloic]().
In this small note we compare different implementations of several functions on the [Hyperbolic]().
We compare the functions prior [PR #]() to vs those introduced therein.
We compare the previous version (always called `_1`) and the new version `_2`, where we leave out the manifold to indicate, that these are the local functions here.
We compare this to the one given in `Manifolds.jl` at time of writing (which is the first one), on `BigFloat` on several scales of magnitudes.
Expand All @@ -29,7 +29,7 @@ teal = paul_tol["mutedteal"]

## Reference Data

We choose a “base point”, a direction and create tangent vectors and correcponding points in several magnutudes of distances
We choose a “base point”, a direction and create tangent vectors and corresponding points in several magnitudes of distances
```{julia}
#| output: false
M = Hyperbolic(2)
Expand Down
2 changes: 1 addition & 1 deletion docs/src/features/atlases.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# [Atlases and charts](@id atlases_and_charts)

Atlases on an ``n``-dimensional manifold ``mathcal M``are collections of charts ``\mathcal A = \{(U_i, φ_i) \colon i \in I\}``, where ``I`` is a (finite or infinte) index family, such that ``U_i \subseteq \mathcal M`` is an open set and each chart ``φ_i: U_i → ℝ^n`` is a homeomorphism. This means, that ``φ_i`` is bijective – sometimes also called one-to-one and onto - and continuous, and its inverse ``φ_i^{-1}`` is continuous as well.
Atlases on an ``n``-dimensional manifold ``mathcal M``are collections of charts ``\mathcal A = \{(U_i, φ_i) \colon i \in I\}``, where ``I`` is a (finite or infinite) index family, such that ``U_i \subseteq \mathcal M`` is an open set and each chart ``φ_i: U_i → ℝ^n`` is a homeomorphism. This means, that ``φ_i`` is bijective – sometimes also called one-to-one and onto - and continuous, and its inverse ``φ_i^{-1}`` is continuous as well.
The inverse ``φ_i^{-1}`` is called (local) parametrization.
The resulting _parameters_ ``a=φ(p)`` of ``p`` (with respect to the chart ``φ``) are in the literature also called “(local) coordinates”. To distinguish the parameter ``a`` from [`get_coordinates`](@ref) in a basis, we use the terminology parameter in this package.

Expand Down
2 changes: 1 addition & 1 deletion docs/src/manifolds/symmetricpositivedefinite.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Pages = ["manifolds/SymmetricPositiveDefiniteAffineInvariant.jl"]
Order = [:type]
```

This metric is also the default metric, i.e. any call of the following functions with `P=SymmetricPositiveDefinite(3)` will result in `MetricManifold(P,AffineInvariantMetric())`and hence yield the formulae described in this seciton.
This metric is also the default metric, i.e. any call of the following functions with `P=SymmetricPositiveDefinite(3)` will result in `MetricManifold(P,AffineInvariantMetric())`and hence yield the formulae described in this section.

```@autodocs
Modules = [Manifolds]
Expand Down
2 changes: 1 addition & 1 deletion docs/src/misc/notation.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Within the documented functions, the utf8 symbols are used whenever possible, as
| ``e_i \in \mathbb R^n`` | the ``i``th unit vector | ``e_i^n`` | the space dimension (``n``) is omitted, when clear from context
| ``B`` | a vector bundle | |
| ``\mathcal T_{q\gets p}X`` | vector transport | | of the vector ``X`` from ``T_p\mathcal M`` to ``T_q\mathcal M``
| ``\mathcal T_{p,Y}X`` | vector transport in direction ``Y`` | | of the vector ``X`` from ``T_p\mathcal M`` to ``T_q\mathcal M``, where ``q`` is deretmined by ``Y``, for example using the exponential map or some retraction. |
| ``\mathcal T_{p,Y}X`` | vector transport in direction ``Y`` | | of the vector ``X`` from ``T_p\mathcal M`` to ``T_q\mathcal M``, where ``q`` is determined by ``Y``, for example using the exponential map or some retraction. |
| ``\operatorname{Vol}(\mathcal M)`` | volume of manifold ``\mathcal M`` | |
| ``\theta_p(X)`` | volume density for vector ``X`` tangent at point ``p`` | |
| ``\mathcal W`` | the Weingarten map ``\mathcal W: T_p\mathcal M × N_p\mathcal M → T_p\mathcal M`` | ``\mathcal W_p`` | the second notation to emphasize the dependency of the point ``p\in\mathcal M`` |
Expand Down
2 changes: 1 addition & 1 deletion docs/src/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ @article{BergmannGousenbourger:2018
}
@book{BinzPods:2008,
AUTHOR = {Biny, E and Pods, S},
PUBLISHER = {American Mathematical Socienty},
PUBLISHER = {American Mathematical Society},
TITLE = {The Geometry of Heisenberg Groups: With Applications in Signal Theory, Optics, Quantization, and Field Quantization},
YEAR = {2008}
}
Expand Down
6 changes: 3 additions & 3 deletions ext/ManifoldsTestExt/tests_general.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ that lie on it (contained in `pts`).
- `test_mutating_rand = false` : test the mutating random function for points on manifolds.
- `test_project_point = false`: test projections onto the manifold.
- `test_project_tangent = false` : test projections on tangent spaces.
- `test_representation_size = true` : test repersentation size of points/tvectprs.
- `test_representation_size = true` : test representation size of points/tvectprs.
- `test_tangent_vector_broadcasting = true` : test boradcasting operators on TangentSpace.
- `test_vector_spaces = true` : test Vector bundle of this manifold.
- `test_default_vector_transport = false` : test the default vector transport (usually
Expand Down Expand Up @@ -841,12 +841,12 @@ function test_manifold(
end

"""
test_parallel_transport(M,P; along=false, to=true, diretion=true)
test_parallel_transport(M,P; along=false, to=true, direction=true)
Generic tests for parallel transport on `M`given at least two pointsin `P`.
The single functions to transport `along` (a curve), `to` (a point) or (towards a) `direction`
are sub-tests that can be activated by the keywords arguemnts
are sub-tests that can be activated by the keywords arguments
!!! Note
Since the interface to specify curves is not yet provided, the along keyword does not have an effect yet
Expand Down
4 changes: 2 additions & 2 deletions src/Manifolds.jl
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ import ManifoldsBase:
vector_transport_along, # just specified in Euclidean - the next 5 as well
vector_transport_along!,
vector_transport_along_diff!, # For consistency these are imported, but for now not
vector_transport_along_project!, # overwritten with new definitons.
vector_transport_along_project!, # overwritten with new definitions.
vector_transport_direction,
vector_transport_direction!,
vector_transport_direction_diff!,
Expand Down Expand Up @@ -496,7 +496,7 @@ include("groups/product_group.jl")
include("groups/semidirect_product_group.jl")
include("groups/power_group.jl")

# generic group - commopn (special) unitary/orthogonal functions
# generic group - common (special) unitary/orthogonal functions
include("groups/general_unitary_groups.jl")
# Special Group Manifolds
include("groups/general_linear.jl")
Expand Down
2 changes: 1 addition & 1 deletion src/groups/general_unitary_groups.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@doc raw"""
GeneralUnitaryMultiplicationGroup{T,𝔽,S} <: AbstractDecoratorManifold{𝔽}
A generic type for Lie groups based on a unitary property and matrix multiplcation,
A generic type for Lie groups based on a unitary property and matrix multiplication,
see e.g. [`Orthogonal`](@ref), [`SpecialOrthogonal`](@ref), [`Unitary`](@ref), and [`SpecialUnitary`](@ref)
"""
struct GeneralUnitaryMultiplicationGroup{T,𝔽,S} <: AbstractDecoratorManifold{𝔽}
Expand Down
14 changes: 7 additions & 7 deletions src/groups/group.jl
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ end
Identity(::O) where {O<:AbstractGroupOperation} = Identity(O)
Identity(::Type{O}) where {O<:AbstractGroupOperation} = Identity{O}()

# To ensure allocate_result_type works in general if idenitty apears in the tuple
# To ensure allocate_result_type works in general if identity appears in the tuple
number_eltype(::Identity) = Bool

@doc raw"""
Expand Down Expand Up @@ -431,7 +431,7 @@ end
Adjoint action of the element `p` of the Lie group `G` on the element `X`
of the corresponding Lie algebra.
It is defined as the differential of the group authomorphism ``Ψ_p(q) = pqp⁻¹`` at
It is defined as the differential of the group automorphism ``Ψ_p(q) = pqp⁻¹`` at
the identity of `G`.
The formula reads
Expand Down Expand Up @@ -703,10 +703,10 @@ function hat!(
return get_vector_lie!(M, Y, X, VeeOrthogonalBasis())
end
function hat(M::AbstractManifold, e::Identity, ::Any)
return throw(ErrorException("On $M there exsists no identity $e"))
return throw(ErrorException("On $M there exists no identity $e"))
end
function hat!(M::AbstractManifold, c, e::Identity, X)
return throw(ErrorException("On $M there exsists no identity $e"))
return throw(ErrorException("On $M there exists no identity $e"))
end

@trait_function vee(M::AbstractDecoratorManifold, e::Identity, X)
Expand Down Expand Up @@ -745,10 +745,10 @@ function vee!(
return get_coordinates_lie!(M, Y, X, VeeOrthogonalBasis())
end
function vee(M::AbstractManifold, e::Identity, X)
return throw(ErrorException("On $M there exsists no identity $e"))
return throw(ErrorException("On $M there exists no identity $e"))
end
function vee!(M::AbstractManifold, c, e::Identity, X)
return throw(ErrorException("On $M there exsists no identity $e"))
return throw(ErrorException("On $M there exists no identity $e"))
end

"""
Expand Down Expand Up @@ -1245,7 +1245,7 @@ end
@doc raw"""
get_vector_lie(G::AbstractDecoratorManifold, a, B::AbstractBasis)
Reconstruct a tangent vector from the Lie algebra of `G` from cooordinates `a` of a basis `B`.
Reconstruct a tangent vector from the Lie algebra of `G` from coordinates `a` of a basis `B`.
This is similar to calling [`get_vector`](@ref) at the `p=`[`Identity`](@ref)`(G)`.
"""
function get_vector_lie(
Expand Down
2 changes: 1 addition & 1 deletion src/groups/product_group.jl
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ end

function is_identity(G::ProductGroup, p::Identity{<:ProductOperation}; kwargs...)
pes = submanifold_components(G, p)
M = G.manifold # Inner prodct manifold (of groups)
M = G.manifold # Inner product manifold (of groups)
return all(map((M, pe) -> is_identity(M, pe; kwargs...), M.manifolds, pes))
end

Expand Down
6 changes: 3 additions & 3 deletions src/manifolds/Circle.jl
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ manifold_volume(::Circle) = 2 * π
mean(M::Circle{ℝ}, x::AbstractVector[, w::AbstractWeights])
Compute the Riemannian [`mean`](@ref mean(M::AbstractManifold, args...)) of `x` of points on
the [`Circle`](@ref) ``𝕊^1``, reprsented by real numbers, i.e. the angular mean
the [`Circle`](@ref) ``𝕊^1``, represented by real numbers, i.e. the angular mean
````math
\operatorname{atan}\Bigl( \sum_{i=1}^n w_i\sin(x_i), \sum_{i=1}^n w_i\sin(x_i) \Bigr).
````
Expand All @@ -375,7 +375,7 @@ end
mean(M::Circle{ℂ}, x::AbstractVector[, w::AbstractWeights])
Compute the Riemannian [`mean`](@ref mean(M::AbstractManifold, args...)) of `x` of points on
the [`Circle`](@ref) ``𝕊^1``, reprsented by complex numbers, i.e. embedded in the complex plane.
the [`Circle`](@ref) ``𝕊^1``, represented by complex numbers, i.e. embedded in the complex plane.
Comuting the sum
````math
s = \sum_{i=1}^n x_i
Expand Down Expand Up @@ -510,7 +510,7 @@ sym_rem(x, T=π) = map(sym_rem, x, Ref(T))
Compute the parallel transport of `X` from the tangent space at `p` to the tangent space at
`q` on the [`Circle`](@ref) `M`.
For the real-valued case this results in the identity.
For the complex-valud case, the formula is the same as for the [`Sphere`](@ref)`(1)` in the
For the complex-valued case, the formula is the same as for the [`Sphere`](@ref)`(1)` in the
complex plane.
````math
\mathcal P_{q←p} X = X - \frac{⟨\log_p q,X⟩_p}{d^2_{ℂ}(p,q)}
Expand Down
2 changes: 1 addition & 1 deletion src/manifolds/Elliptope.jl
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ end
@doc raw"""
check_point(M::Elliptope, q; kwargs...)
checks, whether `q` is a valid reprsentation of a point ``p=qq^{\mathrm{T}}`` on the
checks, whether `q` is a valid representation of a point ``p=qq^{\mathrm{T}}`` on the
[`Elliptope`](@ref) `M`, i.e. is a matrix
of size `(N,K)`, such that ``p`` is symmetric positive semidefinite and has unit trace.
Since by construction ``p`` is symmetric, this is not explicitly checked.
Expand Down
2 changes: 1 addition & 1 deletion src/manifolds/EmbeddedTorus.jl
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Check whether `p` is a valid point on the [`EmbeddedTorus`](@ref) `M`.
The tolerance for the last test can be set using the `kwargs...`.
The method checks if ``(p_1^2 + p_2^2 + p_3^2 + R^2 - r^2)^2``
is apprximately equal to ``4R^2(p_1^2 + p_2^2)``.
is approximately equal to ``4R^2(p_1^2 + p_2^2)``.
"""
function check_point(M::EmbeddedTorus, p; kwargs...)
A = (dot(p, p) + M.R^2 - M.r^2)^2
Expand Down
6 changes: 3 additions & 3 deletions src/manifolds/Euclidean.jl
Original file line number Diff line number Diff line change
Expand Up @@ -659,23 +659,23 @@ end
"""
parallel_transport_along(M::Euclidean, p, X, c)
the parallel transport on [`Euclidean`](@ref) is the identiy, i.e. returns `X`.
the parallel transport on [`Euclidean`](@ref) is the identity, i.e. returns `X`.
"""
parallel_transport_along(::Euclidean, ::Any, X, c::AbstractVector) = X
parallel_transport_along!(::Euclidean, Y, ::Any, X, c::AbstractVector) = copyto!(Y, X)

"""
parallel_transport_direction(M::Euclidean, p, X, d)
the parallel transport on [`Euclidean`](@ref) is the identiy, i.e. returns `X`.
the parallel transport on [`Euclidean`](@ref) is the identity, i.e. returns `X`.
"""
parallel_transport_direction(::Euclidean, ::Any, X, ::Any) = X
parallel_transport_direction!(::Euclidean, Y, ::Any, X, ::Any) = copyto!(Y, X)

"""
parallel_transport_to(M::Euclidean, p, X, q)
the parallel transport on [`Euclidean`](@ref) is the identiy, i.e. returns `X`.
the parallel transport on [`Euclidean`](@ref) is the identity, i.e. returns `X`.
"""
parallel_transport_to(::Euclidean, ::Any, X, ::Any) = X
parallel_transport_to!(::Euclidean, Y, ::Any, X, ::Any) = copyto!(Y, X)
Expand Down
4 changes: 2 additions & 2 deletions src/manifolds/GeneralizedGrassmann.jl
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ end
check_point(M::GeneralizedGrassmann, p)
Check whether `p` is representing a point on the [`GeneralizedGrassmann`](@ref) `M`, i.e. its
a `n`-by-`k` matrix of unitary column vectors with respect to the B inner prudct and
a `n`-by-`k` matrix of unitary column vectors with respect to the B inner product and
of correct `eltype` with respect to `𝔽`.
"""
function check_point(M::GeneralizedGrassmann, p; kwargs...)
Expand Down Expand Up @@ -359,7 +359,7 @@ end
@doc raw"""
representation_size(M::GeneralizedGrassmann)
Return the represenation size or matrix dimension of a point on the [`GeneralizedGrassmann`](@ref)
Return the representation size or matrix dimension of a point on the [`GeneralizedGrassmann`](@ref)
`M`, i.e. ``(n,k)`` for both the real-valued and the complex value case.
"""
representation_size(M::GeneralizedGrassmann) = get_parameter(M.size)
Expand Down
2 changes: 1 addition & 1 deletion src/manifolds/Hamiltonian.jl
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ end
ManifoldsBase.@default_manifold_fallbacks HamiltonianMatrices Hamiltonian Hamiltonian value value

@doc raw"""
^(A::Hamilonian, ::typeof(+))
^(A::Hamiltonian, ::typeof(+))
Compute the [`symplectic_inverse`](@ref) of a Hamiltonian (A)
"""
Expand Down
12 changes: 6 additions & 6 deletions src/manifolds/Hyperbolic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ metric. The corresponding sectional curvature is ``-1``.
If `p` and `X` are `Vector`s of length `n+1` they are assumed to be
a [`HyperboloidPoint`](@ref) and a [`HyperboloidTVector`](@ref), respectively
Other models are the Poincaré ball model, see [`PoincareBallPoint`](@ref) and [`PoincareBallTVector`](@ref), respectiely
Other models are the Poincaré ball model, see [`PoincareBallPoint`](@ref) and [`PoincareBallTVector`](@ref), respectively
and the Poincaré half space model, see [`PoincareHalfSpacePoint`](@ref) and [`PoincareHalfSpaceTVector`](@ref), respectively.
# Constructor
Expand Down Expand Up @@ -52,7 +52,7 @@ end
In the Hyperboloid model of the [`Hyperbolic`](@ref) ``\mathcal H^n`` points are represented
as vectors in ``ℝ^{n+1}`` with [`MinkowskiMetric`](@ref) equal to ``-1``.
This representation is the default, i.e. `AbstractVector`s are assumed to have this repesentation.
This representation is the default, i.e. `AbstractVector`s are assumed to have this representation.
"""
struct HyperboloidPoint{TValue<:AbstractVector} <: AbstractManifoldPoint
value::TValue
Expand All @@ -65,7 +65,7 @@ In the Hyperboloid model of the [`Hyperbolic`](@ref) ``\mathcal H^n`` tangent vc
as vectors in ``ℝ^{n+1}`` with [`MinkowskiMetric`](@ref) ``⟨p,X⟩_{\mathrm{M}}=0`` to their base
point ``p``.
This representation is the default, i.e. vectors are assumed to have this repesentation.
This representation is the default, i.e. vectors are assumed to have this representation.
"""
struct HyperboloidTVector{TValue<:AbstractVector} <: TVector
value::TValue
Expand Down Expand Up @@ -148,7 +148,7 @@ For the [`HyperboloidPoint`](@ref) or plain vectors this means that, `p` is a ve
length ``n+1`` with inner product in the embedding of -1, see [`MinkowskiMetric`](@ref).
The tolerance for the last test can be set using the `kwargs...`.
For the [`PoincareBallPoint`](@ref) a valid point is a vector ``p ∈ ℝ^n`` with a norm stricly
For the [`PoincareBallPoint`](@ref) a valid point is a vector ``p ∈ ℝ^n`` with a norm strictly
less than 1.
For the [`PoincareHalfSpacePoint`](@ref) a valid point is a vector from ``p ∈ ℝ^n`` with a positive
Expand Down Expand Up @@ -288,7 +288,7 @@ reaches `q` after time 1. The formula reads for ``p ≠ q``
```
where ``⟨⋅,⋅⟩_{\mathrm{M}}`` denotes the [`MinkowskiMetric`](@ref) on the embedding,
the [`Lorentz`](@ref)ian manifold. For ``p=q`` the logarihmic map is equal to the zero vector.
the [`Lorentz`](@ref)ian manifold. For ``p=q`` the logarithmic map is equal to the zero vector.
"""
log(::Hyperbolic, ::Any...)

Expand Down Expand Up @@ -368,7 +368,7 @@ end
@doc raw"""
parallel_transport_to(M::Hyperbolic, p, X, q)
Compute the paralllel transport of the `X` from the tangent space at `p` on the
Compute the parallel transport of the `X` from the tangent space at `p` on the
[`Hyperbolic`](@ref) space ``\mathcal H^n`` to the tangent at `q` along the [`geodesic`](@extref `ManifoldsBase.geodesic-Tuple{AbstractManifold, Any, Any}`)
connecting `p` and `q`. The formula reads
Expand Down
2 changes: 1 addition & 1 deletion src/manifolds/HyperbolicPoincareBall.jl
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ end
@doc raw"""
project(::Hyperbolic, ::PoincareBallPoint, ::PoincareBallTVector)
projction of tangent vectors in the Poincaré ball model is just the identity, since
projection of tangent vectors in the Poincaré ball model is just the identity, since
the tangent space consists of all ``ℝ^n``.
"""
project(::Hyperbolic, ::PoincareBallPoint, ::PoincareBallTVector)
Expand Down
2 changes: 1 addition & 1 deletion src/manifolds/HyperbolicPoincareHalfspace.jl
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ end
@doc raw"""
project(::Hyperbolic, ::PoincareHalfSpacePoint ::PoincareHalfSpaceTVector)
projction of tangent vectors in the Poincaré half space model is just the identity, since
projection of tangent vectors in the Poincaré half space model is just the identity, since
the tangent space consists of all $ℝ^n$.
"""
project(::Hyperbolic, ::PoincareHalfSpacePoint::PoincareHalfSpaceTVector)
Expand Down
4 changes: 2 additions & 2 deletions src/manifolds/Hyperrectangle.jl
Original file line number Diff line number Diff line change
Expand Up @@ -321,15 +321,15 @@ LinearAlgebra.norm(::Hyperrectangle, ::Any, X) = norm(X)
"""
parallel_transport_direction(M::Hyperrectangle, p, X, d)
the parallel transport on [`Hyperrectangle`](@ref) is the identiy, i.e. returns `X`.
the parallel transport on [`Hyperrectangle`](@ref) is the identity, i.e. returns `X`.
"""
parallel_transport_direction(::Hyperrectangle, ::Any, X, ::Any) = X
parallel_transport_direction!(::Hyperrectangle, Y, ::Any, X, ::Any) = copyto!(Y, X)

"""
parallel_transport_to(M::Hyperrectangle, p, X, q)
the parallel transport on [`Hyperrectangle`](@ref) is the identiy, i.e. returns `X`.
the parallel transport on [`Hyperrectangle`](@ref) is the identity, i.e. returns `X`.
"""
parallel_transport_to(::Hyperrectangle, ::Any, X, ::Any) = X
parallel_transport_to!(::Hyperrectangle, Y, ::Any, X, ::Any) = copyto!(Y, X)
Expand Down
Loading

0 comments on commit 1fe101b

Please sign in to comment.