JuliaManifolds/LieGroups.jl

New linear representation type

Offen

#6 geöffnet am 18.09.2024

 (12 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Julia (3 Forks)github user discovery
help wanted

Repository-Metriken

Stars
 (46 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Many group actions are actually linear representations, which allows to define apply_diff automatically. I would suggest the following:

  1. Create a new abstract type AbstractLinearRepresentation:
abstract type AbstractLinearRepresentation{AD <: ActionDirection} <: AbstractGroupAction{AD} end
  1. Define apply_diff for this class of group actions:
Manifolds.apply_diff(A::AbstractLinearRepresentation, g, ::Any, X) = apply(A, g, X)
  1. Make the existing linear group actions derive from AbstractLinearRepresentation For instance:
struct TranslationAction{TAD<:ActionDirection,TM<:AbstractManifold,TRn<:TranslationGroup} <:
       AbstractLinearRepresentation{TAD}
    manifold::TM
    Rn::TRn
end
  1. Clean up existing code Most of the existing implementations of apply_diff follow this pattern (because they are linear representation), for instance:
  • apply_diff(::TranslationAction,...)
  • apply_diff(::RotationActionOnVector,...)
  • apply_diff(::RotationTranslationOnVector,...)`

Contributor Guide