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