eigen/unsupported/Eigen
Christian Seiler 03a956925a CXX11/TensorSymmetry: add symmetry support for Tensor class
Add a symCoeff() method to the Tensor class template that allows the
user of the class to set multiple elements of a tensor at once if they
are connected by a symmetry operation with respect to the tensor's
indices (symmetry/antisymmetry/hermiticity/antihermiticity under
echange of two indices and combination thereof for different pairs of
indices).

A compile-time resolution of the required symmetry groups via meta
templates is also implemented. For small enough groups this is used to
unroll the loop that goes through all the elements of the Tensor that
are connected by this group. For larger groups or groups where the
symmetries are defined at run time, a standard run-time implementation
of the same algorithm is provided.

For example, the following code completely initializes all elements of
the totally antisymmetric tensor in three dimensions ('epsilon
tensor'):

SGroup<3, AntiSymmetry<0,1>, AntiSymmetry<1,2>> sym;
Eigen::Tensor<double, 3> epsilon(3,3,3);
epsilon.setZero();
epsilon.symCoeff(sym, 0, 1, 2) =  1;
2013-11-14 23:35:11 +01:00
..
CXX11 CXX11/TensorSymmetry: add symmetry support for Tensor class 2013-11-14 23:35:11 +01:00
src Fixed bug #702 and added unit test. 2013-11-07 18:32:24 +01:00
AdolcForward remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
AlignedVector3 remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
ArpackSupport bug #230, fix compilation issues and wrong static assertions 2013-06-18 09:44:40 +02:00
AutoDiff remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
BVH remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
CMakeLists.txt Move work in progress Levenberg Marquardt module in unsupported 2012-12-08 18:22:23 +01:00
FFT remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
IterativeSolvers Fix some MPL2/LGPL lisencing confusions 2013-02-06 11:30:33 +01:00
KroneckerProduct remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
LevenbergMarquardt Set built-in sparse QR as the default sparse solver and add ComputationInfo for Levenberg Marquardt, 2013-02-20 14:10:14 +01:00
MatrixFunctions Directly code failing example, or it breaks make doc. 2013-07-21 18:09:11 +08:00
MoreVectorization remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
MPRealSupport Remove dummy code in MPRealSupport 2013-01-24 08:48:26 +01:00
NonLinearOptimization fix a weird typo I commited in ae76c97704 2013-06-03 23:09:33 +02:00
NumericalDiff remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
OpenGLSupport remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
Polynomials remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
Skyline remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
SparseExtra remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
Splines remove the 'Unsupported Modules' meta module 2013-01-11 10:40:35 +01:00
SVD new unsupported and not finished SVD, using a divide and conquert algorithm, with tests and benchmark 2013-06-19 00:03:27 +02:00