Skip to content

Commit

Permalink
start the group tutorial, remove two exp and log methods that sho…
Browse files Browse the repository at this point in the history
…uldn't be there
  • Loading branch information
mateuszbaran committed Aug 10, 2024
1 parent 3f21e4c commit dc764f6
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 54 deletions.
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ makedocs(;
"perform Hand gesture analysis" => "tutorials/hand-gestures.md",
"integrate on manifolds and handle probability densities" => "tutorials/integration.md",
"explore curvature without coordinates" => "tutorials/exploring-curvature.md",
"work with groups" => "tutorials/groups.md",
],
"Manifolds" => [
"Basic manifolds" => [
Expand Down
54 changes: 0 additions & 54 deletions src/groups/semidirect_product_group.jl
Original file line number Diff line number Diff line change
Expand Up @@ -265,57 +265,3 @@ function submanifold_components(
)
return map(N -> Identity(N), M.manifolds)
end

function log(
::TraitList{
<:IsGroupManifold{<:SemidirectProductOperation,<:LeftInvariantRepresentation},
},
G::AbstractDecoratorManifold,
p,
q,
)
BG = base_group(G)
return log_lie(BG, compose(BG, inv(BG, p), q))
end
function log!(
::TraitList{
<:IsGroupManifold{<:SemidirectProductOperation,<:LeftInvariantRepresentation},
},
G::AbstractDecoratorManifold,
X,
p,
q,
)
x = allocate_result(G, inv)
BG = base_group(G)
inv!(BG, x, p)
compose!(BG, x, x, q)
log_lie!(BG, X, x)
return X
end
function exp(
::TraitList{
<:IsGroupManifold{<:SemidirectProductOperation,<:LeftInvariantRepresentation},
},
G::AbstractDecoratorManifold,
p,
X,
t::Number=1,
)
BG = base_group(G)
return compose(BG, p, exp_lie(BG, t * X))
end
function exp!(
::TraitList{
<:IsGroupManifold{<:SemidirectProductOperation,<:LeftInvariantRepresentation},
},
G::AbstractDecoratorManifold,
q,
p,
X,
)
BG = base_group(G)
exp_lie!(BG, q, X)
compose!(BG, q, p, q)
return q
end
40 changes: 40 additions & 0 deletions tutorials/groups.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: work with groups
---

```{julia}
#| echo: false
#| code-fold: true
#| output: false
using Pkg;
cd(@__DIR__)
Pkg.activate("."); # for reproducibility use the local tutorial environment.
Pkg.develop(path="../") # a trick to work on the local dev version
using Markdown
```

This is a short overview of group support in [`Manifolds.jl`](https://juliamanifolds.github.io/Manifolds.jl/) and how to get started working with them.

Groups currently available in `Manifolds.jl` are listed in ``[group section](@ref GroupManifoldSection)``{=commonmark}.

First, let's load libraries we will use

```{julia}
using Manifolds, RecursiveArrayTools
```


## Relationship between groups, metrics and connections


Mention invariance and the difference between `exp` and `exp_lie`.


## Literature

````{=commonmark}
```@bibliography
Pages = ["groups.md"]
Canonical=false
```
````

0 comments on commit dc764f6

Please sign in to comment.