Added new types nda::operation and nda::sym_grp. The latter can be constructed from a list of callable objects F modelling the NdaSymmetry concept (take the indices of an nda::array, mutate them and return an nda::operation) and an nda::array. Instances of nda::sym_grp contain a list of orbits (with associated operations) traversed by recursively applying F to non-equivalent elements of the array. Given a set of symmetries, this allows one to restrict the calculation of array elements to an irreducible subset instead of the whole object.
Added new types
nda::operation
andnda::sym_grp
. The latter can be constructed from a list of callable objectsF
modelling theNdaSymmetry
concept (take the indices of annda::array
, mutate them and return annda::operation
) and annda::array.
Instances ofnda::sym_grp
contain a list of orbits (with associated operations) traversed by recursively applyingF
to non-equivalent elements of the array. Given a set of symmetries, this allows one to restrict the calculation of array elements to an irreducible subset instead of the whole object.