Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix several typos in the docs #709

Merged
merged 2 commits into from
Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.9.15] unreleased

## Fixed

* several typographical errors in the docs
* unifies to use two backticks ``` `` ``` for math instead of ` $ ` further in the docs

## [0.9.14] – 2024-01-31

### Added
Expand Down
2 changes: 2 additions & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ makedocs(;
format=Documenter.HTML(
prettyurls=false,
assets=["assets/favicon.ico", "assets/citations.css"],
size_threshold_warn=200 * 2^10, # raise slightly from 100 to 200 KiB
size_threshold=300 * 2^10, # raise slightly 200 to to 300 KiB
),
modules=[
Manifolds,
Expand Down
8 changes: 5 additions & 3 deletions docs/src/manifolds/rotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

The manifold ``\mathrm{SO}(n)`` of orthogonal matrices with determinant ``+1`` in ``ℝ^{n×n}``, i.e.

``\mathrm{SO}(n) = \bigl\{R ∈ ℝ^{n×n} \big| R R^{\mathrm{T}} =
R^{\mathrm{T}}R = I_n, \det(R) = 1 \bigr\}$
```math
\mathrm{SO}(n) = \bigl\{R ∈ ℝ^{n×n} \big| R R^{\mathrm{T}} =
R^{\mathrm{T}}R = I_n, \det(R) = 1 \bigr\}
```

The Lie group ``\mathrm{SO}(n)`` is a subgroup of the orthogonal group ``\mathrm{O}(n)`` and also known as the special orthogonal group or the set of rotations group.
See also [`SpecialOrthogonal`](@ref), which is this manifold equipped with the group operation.
Expand All @@ -24,7 +26,7 @@ This convention allows for more efficient operations on tangent vectors.
Tangent spaces at different points are different vector spaces.

Let ``L_R: \mathrm{SO}(n) → \mathrm{SO}(n)`` where ``R ∈ \mathrm{SO}(n)`` be the left-multiplication by ``R``, that is ``L_R(S) = RS``.
The tangent space at rotation ``R``, ``T_R \mathrm{SO}(n)``, is related to the tangent space at the identity rotation ``I_n`` by the differential of ``L_R`` at identity, $(\mathrm{d}L_R)_{I_n} : T_{I_n} \mathrm{SO}(n) → T_R \mathrm{SO}(n)``.
The tangent space at rotation ``R``, ``T_R \mathrm{SO}(n)``, is related to the tangent space at the identity rotation ``I_n`` by the differential of ``L_R`` at identity, ``(\mathrm{d}L_R)_{I_n} : T_{I_n} \mathrm{SO}(n) → T_R \mathrm{SO}(n)``.
To convert the tangent vector representation at the identity rotation ``X ∈ T_{I_n} \mathrm{SO}(n)`` (i.e., the default) to the matrix representation of the corresponding tangent vector ``Y`` at a rotation ``R`` use the [`embed`](@ref embed(::Manifolds.Rotations, :Any...)) which implements the following multiplication: ``Y = RX ∈ T_R \mathrm{SO}(n)``.
You can compare the functions [`log`](@ref log(::Manifolds.Rotations, :Any...)) and [`exp`](@ref exp(::Manifolds.Rotations, ::Any...)) to see how it works in practice.

Expand Down
9 changes: 6 additions & 3 deletions docs/src/manifolds/symplecticstiefel.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,26 @@

The [`SymplecticStiefel`](@ref) manifold, denoted ``\operatorname{SpSt}(2n, 2k)``,
represents canonical symplectic bases of ``2k`` dimensonal symplectic subspaces of ``ℝ^{2n×2n}``.
This means that the columns of each element ``p \in \operatorname{SpSt}(2n, 2k) \subset ℝ^{2n×2k}$
This means that the columns of each element ``p \in \operatorname{SpSt}(2n, 2k) \subset ℝ^{2n×2k}``
constitute a canonical symplectic basis of ``\operatorname{span}(p)``.
The canonical symplectic form is a non-degenerate, bilinear, and skew symmetric map
``\omega_{2k}\colon 𝔽^{2k}×𝔽^{2k}
→ 𝔽``, given by
``\omega_{2k}\colon 𝔽^{2k}×𝔽^{2k} → 𝔽``, given by
``\omega_{2k}(x, y) = x^T Q_{2k} y`` for elements ``x, y \in 𝔽^{2k}``, with

````math
Q_{2k} =
\begin{bmatrix}
0_k & I_k \\
-I_k & 0_k
\end{bmatrix}.
````

Specifically given an element ``p \in \operatorname{SpSt}(2n, 2k)`` we require that

````math
\omega_{2n} (p x, p y) = x^T(p^TQ_{2n}p)y = x^TQ_{2k}y = \omega_{2k}(x, y) \;\forall\; x, y \in 𝔽^{2k},
````

leading to the requirement on ``p`` that ``p^TQ_{2n}p = Q_{2k}``.
In the case that ``k = n``, this manifold reduces to the [`SymplecticMatrices`](@ref) manifold, which is also known as the symplectic group.

Expand Down
5 changes: 5 additions & 0 deletions docs/src/manifolds/tucker.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ Order = [:type, :function]
```

## Literature

```@bibliography
Pages = ["tucker.md"]
Canonical=false
```
68 changes: 34 additions & 34 deletions src/groups/special_euclidean.jl
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
@doc raw"""
SpecialEuclidean(n)

Special Euclidean group $\mathrm{SE}(n)$, the group of rigid motions.
Special Euclidean group ``\mathrm{SE}(n)``, the group of rigid motions.

``\mathrm{SE}(n)`` is the semidirect product of the [`TranslationGroup`](@ref) on $ℝ^n$ and
``\mathrm{SE}(n)`` is the semidirect product of the [`TranslationGroup`](@ref) on ``ℝ^n`` and
[`SpecialOrthogonal`](@ref)`(n)`

````math
\mathrm{SE}(n) ≐ \mathrm{T}(n) ⋊_θ \mathrm{SO}(n),
````

where ``θ`` is the canonical action of ``\mathrm{SO}(n)`` on $\mathrm{T}(n)$ by vector rotation.
where ``θ`` is the canonical action of ``\mathrm{SO}(n)`` on ``\mathrm{T}(n)`` by vector rotation.

This constructor is equivalent to calling

Expand All @@ -20,8 +20,8 @@ SOn = SpecialOrthogonal(n)
SemidirectProductGroup(Tn, SOn, RotationAction(Tn, SOn))
```

Points on $\mathrm{SE}(n)$ may be represented as points on the underlying product manifold
$\mathrm{T}(n) × \mathrm{SO}(n)$. For group-specific functions, they may also be
Points on ``\mathrm{SE}(n)`` may be represented as points on the underlying product manifold
``\mathrm{T}(n) × \mathrm{SO}(n)``. For group-specific functions, they may also be
represented as affine matrices with size `(n + 1, n + 1)` (see [`affine_matrix`](@ref)), for
which the group operation is [`MultiplicationOperation`](@ref).
"""
Expand Down Expand Up @@ -167,9 +167,9 @@ end
@doc raw"""
affine_matrix(G::SpecialEuclidean, p) -> AbstractMatrix

Represent the point $p ∈ \mathrm{SE}(n)$ as an affine matrix.
For $p = (t, R) ∈ \mathrm{SE}(n)$, where $t ∈ \mathrm{T}(n), R ∈ \mathrm{SO}(n)$, the
affine representation is the $n + 1 × n + 1$ matrix
Represent the point ``p ∈ \mathrm{SE}(n)`` as an affine matrix.
For ``p = (t, R) ∈ \mathrm{SE}(n)``, where ``t ∈ \mathrm{T}(n), R ∈ \mathrm{SO}(n)``, the
affine representation is the ``n + 1 × n + 1`` matrix

````math
\begin{pmatrix}
Expand All @@ -178,7 +178,7 @@ R & t \\
\end{pmatrix}.
````

This function embeds $\mathrm{SE}(n)$ in the general linear group $\mathrm{GL}(n+1)$.
This function embeds ``\mathrm{SE}(n)`` in the general linear group ``\mathrm{GL}(n+1)``.
It is an isometric embedding and group homomorphism [RicoMartinez:1988](@cite).

See also [`screw_matrix`](@ref) for matrix representations of the Lie algebra.
Expand Down Expand Up @@ -278,9 +278,9 @@ end
@doc raw"""
screw_matrix(G::SpecialEuclidean, X) -> AbstractMatrix

Represent the Lie algebra element $X ∈ 𝔰𝔢(n) = T_e \mathrm{SE}(n)$ as a screw matrix.
For $X = (b, Ω) ∈ 𝔰𝔢(n)$, where $Ω ∈ 𝔰𝔬(n) = T_e \mathrm{SO}(n)$, the screw representation is
the $n + 1 × n + 1$ matrix
Represent the Lie algebra element ``X ∈ 𝔰𝔢(n) = T_e \mathrm{SE}(n)`` as a screw matrix.
For ``X = (b, Ω) ∈ 𝔰𝔢(n)``, where ``Ω ∈ 𝔰𝔬(n) = T_e \mathrm{SO}(n)``, the screw representation is
the ``n + 1 × n + 1`` matrix

````math
\begin{pmatrix}
Expand All @@ -289,7 +289,7 @@ the $n + 1 × n + 1$ matrix
\end{pmatrix}.
````

This function embeds $𝔰𝔢(n)$ in the general linear Lie algebra $𝔤𝔩(n+1)$ but it's not
This function embeds ``𝔰𝔢(n)`` in the general linear Lie algebra ``𝔤𝔩(n+1)`` but it's not
a homomorphic embedding (see [`SpecialEuclideanInGeneralLinear`](@ref) for a homomorphic one).

See also [`affine_matrix`](@ref) for matrix representations of the Lie group.
Expand Down Expand Up @@ -351,13 +351,13 @@ end
@doc raw"""
exp_lie(G::SpecialEuclidean{n}, X)

Compute the group exponential of $X = (b, Ω) ∈ 𝔰𝔢(n)$, where $b ∈ 𝔱(n)$ and $Ω ∈ 𝔰𝔬(n)$:
Compute the group exponential of ``X = (b, Ω) ∈ 𝔰𝔢(n)``, where ``b ∈ 𝔱(n)`` and ``Ω ∈ 𝔰𝔬(n)``:

````math
\exp X = (t, R),
````

where $t ∈ \mathrm{T}(n)$ and $R = \exp Ω$ is the group exponential on $\mathrm{SO}(n)$.
where ``t ∈ \mathrm{T}(n)`` and ``R = \exp Ω`` is the group exponential on ``\mathrm{SO}(n)``.

In the [`screw_matrix`](@ref) representation, the group exponential is the matrix
exponential (see [`exp_lie`](@ref)).
Expand All @@ -367,39 +367,39 @@ exp_lie(::SpecialEuclidean, ::Any)
@doc raw"""
exp_lie(G::SpecialEuclidean{TypeParameter{Tuple{2}}}, X)

Compute the group exponential of $X = (b, Ω) ∈ 𝔰𝔢(2)$, where $b ∈ 𝔱(2)$ and $Ω ∈ 𝔰𝔬(2)$:
Compute the group exponential of ``X = (b, Ω) ∈ 𝔰𝔢(2)``, where ``b ∈ 𝔱(2)`` and ``Ω ∈ 𝔰𝔬(2)``:

````math
\exp X = (t, R) = (U(θ) b, \exp Ω),
````

where $t ∈ \mathrm{T}(2)$, $R = \exp Ω$ is the group exponential on $\mathrm{SO}(2)$,
where ``t ∈ \mathrm{T}(2)``, ``R = \exp Ω`` is the group exponential on ``\mathrm{SO}(2)``,

````math
U(θ) = \frac{\sin θ}{θ} I_2 + \frac{1 - \cos θ}{θ^2} Ω,
````

and $θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e$
and ``θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e``
(see [`norm`](@ref norm(M::Rotations, p, X))) is the angle of the rotation.
"""
exp_lie(::SpecialEuclidean{TypeParameter{Tuple{2}}}, ::Any)

@doc raw"""
exp_lie(G::SpecialEuclidean{TypeParameter{Tuple{3}}}, X)

Compute the group exponential of $X = (b, Ω) ∈ 𝔰𝔢(3)$, where $b ∈ 𝔱(3)$ and $Ω ∈ 𝔰𝔬(3)$:
Compute the group exponential of ``X = (b, Ω) ∈ 𝔰𝔢(3)``, where ``b ∈ 𝔱(3)`` and ``Ω ∈ 𝔰𝔬(3)``:

````math
\exp X = (t, R) = (U(θ) b, \exp Ω),
````

where $t ∈ \mathrm{T}(3)$, $R = \exp Ω$ is the group exponential on $\mathrm{SO}(3)$,
where ``t ∈ \mathrm{T}(3)``, ``R = \exp Ω`` is the group exponential on ``\mathrm{SO}(3)``,

````math
U(θ) = I_3 + \frac{1 - \cos θ}{θ^2} Ω + \frac{θ - \sin θ}{θ^3} Ω^2,
````

and $θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e$
and ``θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e``
(see [`norm`](@ref norm(M::Rotations, p, X))) is the angle of the rotation.
"""
exp_lie(::SpecialEuclidean{TypeParameter{Tuple{3}}}, ::Any)
Expand Down Expand Up @@ -471,14 +471,14 @@ end
@doc raw"""
log_lie(G::SpecialEuclidean, p)

Compute the group logarithm of $p = (t, R) ∈ \mathrm{SE}(n)$, where $t ∈ \mathrm{T}(n)$
and $R ∈ \mathrm{SO}(n)$:
Compute the group logarithm of ``p = (t, R) ∈ \mathrm{SE}(n)``, where ``t ∈ \mathrm{T}(n)``
and ``R ∈ \mathrm{SO}(n)``:

````math
\log p = (b, Ω),
````

where $b ∈ 𝔱(n)$ and $Ω = \log R ∈ 𝔰𝔬(n)$ is the group logarithm on $\mathrm{SO}(n)$.
where ``b ∈ 𝔱(n)`` and ``Ω = \log R ∈ 𝔰𝔬(n)`` is the group logarithm on ``\mathrm{SO}(n)``.

In the [`affine_matrix`](@ref) representation, the group logarithm is the matrix logarithm
(see [`log_lie`](@ref)):
Expand All @@ -488,41 +488,41 @@ log_lie(::SpecialEuclidean, ::Any)
@doc raw"""
log_lie(G::SpecialEuclidean{TypeParameter{Tuple{2}}}, p)

Compute the group logarithm of $p = (t, R) ∈ \mathrm{SE}(2)$, where $t ∈ \mathrm{T}(2)$
and $R ∈ \mathrm{SO}(2)$:
Compute the group logarithm of ``p = (t, R) ∈ \mathrm{SE}(2)``, where ``t ∈ \mathrm{T}(2)``
and ``R ∈ \mathrm{SO}(2)``:

````math
\log p = (b, Ω) = (U(θ)^{-1} t, \log R),
````

where $b ∈ 𝔱(2)$, $Ω = \log R ∈ 𝔰𝔬(2)$ is the group logarithm on $\mathrm{SO}(2)$,
where ``b ∈ 𝔱(2)``, ``Ω = \log R ∈ 𝔰𝔬(2)`` is the group logarithm on ``\mathrm{SO}(2)``,

````math
U(θ) = \frac{\sin θ}{θ} I_2 + \frac{1 - \cos θ}{θ^2} Ω,
````

and $θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e$
and ``θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e``
(see [`norm`](@ref norm(M::Rotations, p, X))) is the angle of the rotation.
"""
log_lie(::SpecialEuclidean{TypeParameter{Tuple{2}}}, ::Any)

@doc raw"""
log_lie(G::SpecialEuclidean{TypeParameter{Tuple{3}}}, p)

Compute the group logarithm of $p = (t, R) ∈ \mathrm{SE}(3)$, where $t ∈ \mathrm{T}(3)$
and $R ∈ \mathrm{SO}(3)$:
Compute the group logarithm of ``p = (t, R) ∈ \mathrm{SE}(3)``, where ``t ∈ \mathrm{T}(3)``
and ``R ∈ \mathrm{SO}(3)``:

````math
\log p = (b, Ω) = (U(θ)^{-1} t, \log R),
````

where $b ∈ 𝔱(3)$, $Ω = \log R ∈ 𝔰𝔬(3)$ is the group logarithm on $\mathrm{SO}(3)$,
where ``b ∈ 𝔱(3)``, ``Ω = \log R ∈ 𝔰𝔬(3)`` is the group logarithm on ``\mathrm{SO}(3)``,

````math
U(θ) = I_3 + \frac{1 - \cos θ}{θ^2} Ω + \frac{θ - \sin θ}{θ^3} Ω^2,
````

and $θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e$
and ``θ = \frac{1}{\sqrt{2}} \lVert Ω \rVert_e``
(see [`norm`](@ref norm(M::Rotations, p, X))) is the angle of the rotation.
"""
log_lie(::SpecialEuclidean{TypeParameter{Tuple{3}}}, ::Any)
Expand Down Expand Up @@ -647,8 +647,8 @@ end
@doc raw"""
SpecialEuclideanInGeneralLinear

An explicit isometric and homomorphic embedding of $\mathrm{SE}(n)$ in $\mathrm{GL}(n+1)$
and $𝔰𝔢(n)$ in $𝔤𝔩(n+1)$.
An explicit isometric and homomorphic embedding of ``\mathrm{SE}(n)`` in ``\mathrm{GL}(n+1)``
and ``𝔰𝔢(n)`` in ``𝔤𝔩(n+1)``.
Note that this is *not* a transparently isometric embedding.

# Constructor
Expand Down
Loading
Loading