Skip to content

Commit

Permalink
Start working on the matrix representation for SE(n).
Browse files Browse the repository at this point in the history
  • Loading branch information
kellertuer committed Jan 14, 2025
1 parent 821815d commit 68a831f
Show file tree
Hide file tree
Showing 6 changed files with 293 additions and 96 deletions.
27 changes: 26 additions & 1 deletion ext/LieGroupsRecursiveArrayToolsExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,35 @@ module LieGroupsRecursiveArrayToolsExt

using LieGroups
using RecursiveArrayTools: ArrayPartition
using StaticArrays
using LinearAlgebra
using ManifoldsBase
# Implement SE(n) also on an Array Partition

# disable affine check
LieGroups._check_matrix_affine(::ArrayPartition, ::Int; v=1) = nothing

function ManifoldsBase.submanifold_component(
G::LieGroups.LeftSpecialEuclideanGroup, g::ArrayPartition, ::Val{:Rotation}
)
return ManifoldsBase.submanifold_component(G.manifold, g, 1)
end
function ManifoldsBase.submanifold_component(
G::LieGroups.LeftSpecialEuclideanGroup, g::ArrayPartition, ::Val{:Translation}
)
return ManifoldsBase.submanifold_component(G.manifold, g, 2)
end

Base.@propagate_inbounds function ManifoldsBase.submanifold_component(
G::LieGroups.RightSpecialEuclideanGroup, g::ArrayPartition, ::Val{:Rotation}
)
return ManifoldsBase.submanifold_component(G.manifold, g, 2)
end
Base.@propagate_inbounds function ManifoldsBase.submanifold_component(
G::LieGroups.RightSpecialEuclideanGroup, g::ArrayPartition, ::Val{:Translation}
)
return ManifoldsBase.submanifold_component(G.manifold, g, 1)
end

# TODO: Implement?
# The following three should also work due to the
# AbstractProductGroup s implementations
Expand Down
4 changes: 2 additions & 2 deletions src/LieGroups.jl
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
@doc raw"""
LieGroups.jl: Lie groups and Lie algebras in Julia.
The package is named after the norwegian mathematician [Sophus Lie](https://en.wikipedia.org/wiki/Sophus_Lie).
The package is named after the norwegian mathematician [Marius Sophus Lie](https://en.wikipedia.org/wiki/Sophus_Lie) (1842–1899).
* 📚 Documentation: [manoptjl.org](https://juliamanifolds.github.io/LieGroups.jl/dev/)
* 📚 Documentation: [juliamanifolds.github.io/LieGroups.jl/](https://juliamanifolds.github.io/LieGroups.jl/)
* 📦 Repository: [github.com/JuliaManifolds/LieGroups.jl](https://github.com/JuliaManifolds/LieGroups.jl)
* 💬 Discussions: [github.com/JuliaManifolds/LieGroups.jl/discussions](https://github.com/JuliaManifolds/LieGroups.jl/discussions)
* 🎯 Issues: [github.com/JuliaManifolds/LieGroups.jl/issues](https://github.com/JuliaManifolds/LieGroups.jl/issues)
Expand Down
Loading

0 comments on commit 68a831f

Please sign in to comment.