mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-24 07:13:16 +08:00

When constructing a symmetry group, make the code automatically detect the number of indices required from the indices of the group's generators. Also, allow the symmetry group to be applied to lists of indices that are larger than the number of indices of the symmetry group. Before: SGroup<4, Symmetry<0, 1>, Symmetry<2,3>> group; group.apply<SomeOp, int>(std::array<int,4>{{0, 1, 2, 3}}, 0); After: SGroup<Symmetry<0, 1>, Symmetry<2,3>> group; group.apply<SomeOp, int>(std::array<int,4>{{0, 1, 2, 3}}, 0); group.apply<SomeOp, int>(std::array<int,5>{{0, 1, 2, 3, 4}}, 0); This should make the symmetry group easier to use - especially if one wants to reuse the same symmetry group for different tensors of maybe different rank. static/runtime asserts remain for the case where the length of the index list to which a symmetry group is to be applied is too small.
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
For more information go to http://eigen.tuxfamily.org/.
Languages
C++
85.1%
Fortran
8.5%
C
2.7%
CMake
1.9%
Cuda
1.2%
Other
0.4%