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

A first Lie group! #8

Merged
merged 76 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
5cc48e2
Start addition operation and translation group as a first easy test L…
kellertuer Oct 8, 2024
ab96768
Fix docs.
kellertuer Oct 8, 2024
123a1fe
forgot to run formatter one final time.
kellertuer Oct 8, 2024
ba6b6b5
Fix docs.
kellertuer Oct 9, 2024
2413897
Replace the old uuid in all other places as well.
kellertuer Oct 9, 2024
d7499bf
Merge branch 'main' into kellertuer/first-group
kellertuer Oct 11, 2024
b4fa2c8
Setup zenodo and vale (only on command line for now).
kellertuer Oct 11, 2024
8492278
A bit of work on Lie groups.
kellertuer Oct 11, 2024
7b87074
Further work on the addition group and start testing with a test suite.
kellertuer Oct 11, 2024
87af22a
Fix docs.
kellertuer Oct 11, 2024
21a0295
Test compose with identity.
kellertuer Oct 12, 2024
7763296
Order code in interface.jl alphabetically.
kellertuer Oct 12, 2024
b290737
Switch the order of M and O since we need O much more often in parame…
kellertuer Oct 12, 2024
8b5d2cc
Some docs improvements
kellertuer Oct 12, 2024
e2eb7cd
An hour of fighting type parameters again. Not yet sucessful in creat…
kellertuer Oct 13, 2024
4ae7f74
fix LieAlgebra constructor
mateuszbaran Oct 14, 2024
23cd4f0
Fix exp/log defaults and fallbacks.
kellertuer Oct 14, 2024
99eacf3
Start dummy types and the interface tests.
kellertuer Oct 14, 2024
a64134c
add generic implementation tests for the addition operation
kellertuer Oct 14, 2024
1f0d40e
adds doc strings to the generic addition operations (part I)
kellertuer Oct 14, 2024
29efc35
missed one final default.
kellertuer Oct 14, 2024
8d79880
Test a few more defaults on the interface,
kellertuer Oct 14, 2024
6fcb57b
Add a final test for today.
kellertuer Oct 14, 2024
50d30fb
Apply suggestions from code review
kellertuer Oct 15, 2024
564366a
Fix show method for translation group.
kellertuer Oct 15, 2024
2065185
Cover special cases with the identity on the generic level. Add conju…
kellertuer Oct 15, 2024
a27ab64
Add copyto tests.
kellertuer Oct 15, 2024
cf4a2b1
test two approxs.
kellertuer Oct 15, 2024
d8a0929
test is_vector cases.
kellertuer Oct 15, 2024
432acf8
Implement conjugate and its differential for addition groups.
kellertuer Oct 15, 2024
7267fd4
Implement the remaining functions for a first group
kellertuer Oct 15, 2024
12ce203
A test a day keeps the doctor away.
kellertuer Oct 16, 2024
4fa901c
Omit one default that is not necessary.
kellertuer Oct 16, 2024
6233175
Adds a testt snippet for `diff_inv`.
kellertuer Oct 16, 2024
764cb4f
test snippets for testing composes diffs,
kellertuer Oct 16, 2024
d06b491
Fix a few copy paste errors and a test for Lie brackets.
kellertuer Oct 16, 2024
20ea80d
Switch to JuliaFormatter 2.0
kellertuer Oct 16, 2024
e64a877
Start generic tests for the group action interface.
kellertuer Oct 17, 2024
e10a5fb
runs formatter.
kellertuer Oct 17, 2024
c2a7d2c
inv_compose tests
kellertuer Oct 17, 2024
571e024
specify two function calls
kellertuer Oct 17, 2024
ea623d6
Fix a few final tests.
kellertuer Oct 17, 2024
b5b6f44
Hæ?
kellertuer Oct 17, 2024
6a51d9b
No clue what is happening here
kellertuer Oct 17, 2024
ae96b81
haaaaaaaands.
kellertuer Oct 17, 2024
a9dfa34
Typos.
kellertuer Oct 17, 2024
6e62032
typos.
kellertuer Oct 17, 2024
1e60559
Action tests.
kellertuer Oct 18, 2024
03fc158
Unify docs.
kellertuer Oct 19, 2024
fb1f1a1
Work through the tipps from vale.
kellertuer Oct 19, 2024
d219b27
Fix links.
kellertuer Oct 19, 2024
066129f
Fix another typo.
kellertuer Oct 19, 2024
2dbfe47
Apply suggestions from code review
kellertuer Oct 20, 2024
cc15e51
Rename `Lie` -> `lie` in function names.
kellertuer Oct 20, 2024
2c18ca3
Merge branch 'kellertuer/first-group' of github.com:JuliaManifolds/Li…
kellertuer Oct 20, 2024
6431dd8
Fix (but more complicated again) Lie algebras and fix tests.
kellertuer Oct 20, 2024
859d6f6
reworking type parameters of LieAlgebra
mateuszbaran Oct 20, 2024
eae7e20
Rephrase docs.
kellertuer Oct 21, 2024
bf14e8f
Merge branch 'kellertuer/first-group' of github.com:JuliaManifolds/Li…
kellertuer Oct 21, 2024
4a61bae
Forgot to save a file
kellertuer Oct 21, 2024
11404db
Add Aqua tests, refine a few function names, resolve ambiguities.
kellertuer Oct 21, 2024
3fb4dbd
Introduce `test_mutating` for all tests and pass an option down to de…
kellertuer Oct 21, 2024
8bedbbc
Apply suggestions from code review
kellertuer Oct 22, 2024
ebfd4e3
Fix two repetitions of words.
kellertuer Oct 22, 2024
6d94428
Merge branch 'kellertuer/first-group' of github.com:JuliaManifolds/Li…
kellertuer Oct 22, 2024
60676a0
Apply suggestions from code review
kellertuer Oct 22, 2024
15f717e
Apply suggestions from code review
kellertuer Oct 22, 2024
277025b
Update src/interface.jl
kellertuer Oct 22, 2024
b155a48
Fix a typo.
kellertuer Oct 22, 2024
99ff55e
Resolve an ambiguity.
kellertuer Oct 22, 2024
24fc32e
Fix a bug introduced in the review.
kellertuer Oct 22, 2024
afe76c9
Fix documentation.
kellertuer Oct 22, 2024
2997c03
minor improvements
mateuszbaran Oct 22, 2024
dbb9361
Remark that we extend the Manifolds.jl notation.
kellertuer Oct 22, 2024
23589fd
fix table formatting
mateuszbaran Oct 23, 2024
21fd001
a few typos
mateuszbaran Oct 23, 2024
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ temp
tutorials/*.ipynb
tutorials/*_files/*
tutorials/_freeze
.vscode/settings.json
19 changes: 19 additions & 0 deletions .vale.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
StylesPath = docs/styles
MinAlertLevel = warning
Vocab = LieGroups

MinAlertLevel = suggestion

Packages = Google, write-good

[*.md]
BasedOnStyles = Vale, Google, write-good

[NEWS.md, CONTRIBUTING.md]
BasedOnStyles = Vale, Google
Google.Will = false ; given format and really with intend a _will_
Google.Headings = false ; some might jeally ahabe [] in their headers


[*.jl]
BasedOnStyles = Vale, Google, write-good
29 changes: 24 additions & 5 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,36 @@
{

"creators": [
{
"affiliation": "University of California, San Francisco",
"name": "Axen, Seth",
"orcid": "0000-0003-3933-8247"
},
{
"affiliation": "AGH University of Science and Technology",
"name": "Baran, Mateusz",
"orcid": "0000-0001-9667-5579"
},
{
"affiliation": "NTNU Trondheim",
"name": "Bergmann, Ronny",
"orcid": "0000-0001-8342-7218"
},
{
"name": "Tu, Yueh-Hua"
},
{
"affiliation": "KTH Royal Institute of Technology",
"name": "Verdier, Olivier",
"orcid": "0000-0003-3699-6244"
}
],
"description": "LieGroups.jl provides a library of Lie groups.",
"description": "LieGroups.jl is a library of Lie groups, Lie algebras",
"keywords": [
"Riemannian manifolds",
"Lie groups",
"Julia",
"Programming"
"Lie group",
"Lie algebra",
"manifold",
"Julia"
],
"license": "MIT",
"title": "LieGroups.jl",
Expand Down
4 changes: 1 addition & 3 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Everything denoted by “formerly” refers to the previous name in [`Manifolds.
* `LieGroup` (formerly `GroupManifold`) as well as the concrete groups
* `AdditiveGroup` (formerly `TranslationGroup`)
* `AbstractGroupOperation` as well as its concrete subtypes
* `AdditiveGroupOperation`
* `AdditionGroupOperation` (formerly `AdditionOperation`)
* `AbstractGroupActionType` with its 2 specific (new) abstract
* `AbstractLeftGroupActionType`
* `AbstractRightGroupActionType`
Expand All @@ -24,8 +24,6 @@ Everything denoted by “formerly” refers to the previous name in [`Manifolds.
* `RightGroupOperation` (formerly `RightBackwardAction`)
* `InverseLeftGroupOperation` (formerly `RightForwardAction`)
* `InverseRightGroupOperation` (formerly `LeftBackwardAction`)
* `LieGroups.AbstractGroupOperation` as well as its concrete subtypes
* `AdditiveGroupOperation`
* `apply`and `apply!`
* `base_manifold` to access the manifold within a Lie group
* `compose` and `compose!`
Expand Down
3 changes: 3 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ authors = ["Seth Axen <[email protected]>", "Mateusz Baran <mateuszbaran89@gma
version = "0.1.0"

[deps]
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e"
ManifoldsBase = "3362f125-f0bb-47a3-aa74-596ffd7ef2fb"

[compat]
LinearAlgebra = "1.6"
Manifolds = "0.10"
ManifoldsBase = "0.15.16"
julia = "1.6"

[extras]
Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e"
Expand Down
4 changes: 2 additions & 2 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

This is a package to rework the Lie group features of [`Manifolds.jl`](https://juliamanifolds.github.io/Manifolds.jl/stable/) in a unified way into a separate package.

This especially also includes a few different choices in default behabiour that
This especially also includes a few different choices in default behaviour that
is different from the [`Manifolds.jl`](https://juliamanifolds.github.io/Manifolds.jl/stable/) one. For purely manifold-based operations, any Lie group still is “build upon” a Riemannian manifold.

See [#5](https://github.com/JuliaManifolds/LieGroups.jl/issues/5) for an overview of fatures that are plannned.
See [#5](https://github.com/JuliaManifolds/LieGroups.jl/issues/5) for an overview of features that we plan to implement.
Feel free to add to this list with opening further issues.
9 changes: 7 additions & 2 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ if "--quarto" ∈ ARGS
Pkg.build("IJulia") # build `IJulia` to the right version.
Pkg.activate(@__DIR__) # but return to the docs one before
run(`quarto render $(tutorials_folder)`)
return nothing
end
else # fallback to at least create empty files for Optimize and Implement
# touch(joinpath(@__DIR__, "src/tutorials/Optimize.md"))
Expand Down Expand Up @@ -117,10 +118,14 @@ makedocs(;
"Home" => "index.md",
"About" => "about.md",
(tutorials_in_menu ? [tutorials_menu] : [])...,
"An Interface for Lie Groups" => "interface.md",
"An Interface for ..." => [
"A Lie group and algebra" => "interface/group.md",
"A group operation" => "interface/operations.md",
"A group action" => "interface/actions.md",
],
"Lie groups" => [
"List of Lie Groups" => "groups/index.md",
"Additive group" => "groups/additive.md",
"Translation group" => "groups/translation.md",
],
"Contributing to LieGroups.jl" => "contributing.md",
"Notation" => "notation.md",
Expand Down
13 changes: 0 additions & 13 deletions docs/src/groups/additive.md

This file was deleted.

6 changes: 4 additions & 2 deletions docs/src/groups/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Alphabetical List of Lie groups
# An overview of Lie groups

# Alphabetical list of Lie groups

| Group | Manifold | ``∘`` | Comment |
|:------|:---------|:---------:|:------|
| [`AdditiveGroup`](@ref) | [`Euclidean`](@extref `Manifolds.Euclidean`) | [`+`](@ref AdditiveGroupOperation) | |
| [`TranslationGroup`](@ref) | [`Euclidean`](@extref `Manifolds.Euclidean`) | [`+`](@ref AdditionGroupOperation) | |
13 changes: 13 additions & 0 deletions docs/src/groups/translation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# The Lie group of translations on an Euclidean space
kellertuer marked this conversation as resolved.
Show resolved Hide resolved

```@docs
TranslationGroup
```

## Functions

```@autodocs
Modules = [LieGroups]
Pages = ["groups/translation_group.jl"]
Order = [:function]
```
105 changes: 0 additions & 105 deletions docs/src/interface.md

This file was deleted.

33 changes: 33 additions & 0 deletions docs/src/interface/actions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# An Interface Actions on Lie groups

```@autodocs
Modules = [LieGroups]
Pages = ["group_action_interface.jl"]
Order = [:type]
```

## Functions for Lie group actions

```@autodocs
Modules = [LieGroups]
Pages = ["group_action_interface.jl"]
Order = [:function]
```

# Generic Lie group actions

For certain types of actions, a general implementation can be provided.
These interfaces are documented here.

```@autodocs
Modules = [LieGroups]
Pages = ["group_operation_action.jl"]
Order = [:type, :function]
```

## Literature

```@bibliography
Pages = ["actions.md"]
Canonical=false
```
45 changes: 45 additions & 0 deletions docs/src/interface/group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# The interface for Lie Groups and Lie algebras

```@docs
LieGroup
LieAlgebra
```

## Functions on Lie Groups

```@docs
adjoint
adjoint!
base_manifold
conjugate
conjugate!
diff_conjugate
diff_conjugate!
exp
exp!
identity_element
identity_element!
is_identity
isapprox
is_point(::LieGroup, ::Any)
is_vector(::LieGroup, ::Any)
is_vector(::LieGroup{𝔽,O}, ::Identity{O}, ::Any) where {𝔽,O}
log
log!
```


## Functions on Lie algebras

```@docs
is_point(::LieAlgebra, ::Any)
lie_bracket
lie_bracket!
```

## Literature

```@bibliography
Pages = ["group.md"]
Canonical=false
```
29 changes: 29 additions & 0 deletions docs/src/interface/operations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

# Lie group operations

```@docs
AbstractGroupOperation
Identity
compose
compose!
diff_inv
diff_inv!
diff_left_compose
diff_left_compose!
diff_right_compose
diff_right_compose!
inv_left_compose
inv_left_compose!
inv_right_compose
inv_right_compose!
inv(::LieGroup, ::Any)
inv!
```

For some generic group operations, an easy generic implementation can be provided. This section lists these specific cases and what is implemented for these.

## Additive Group operation

```@docs
AdditionGroupOperation
```
Loading
Loading