Classes | Namespaces | Typedefs | Functions
Tensor.h File Reference
#include "MatrixSquareBracketsAccess.h"
#include "Vector.h"
#include "LoopUnroller.h"
#include "Exception.h"
#include <array>

Classes

class  PLMD::TensorGeneric< n, m >
 
Class implementing fixed size matrices of doubles More...
 
class  PLMD::TensorGenericAux
 Small class to contain local utilities. More...
 

Namespaces

 PLMD
 

Typedefs

typedef Tensor3d PLMD::Tensor
 
typedef TensorGeneric< 1, 1 > PLMD::Tensor1d
 
typedef TensorGeneric< 2, 2 > PLMD::Tensor2d
 
typedef TensorGeneric< 3, 3 > PLMD::Tensor3d
 
typedef TensorGeneric< 4, 4 > PLMD::Tensor4d
 
typedef TensorGeneric< 5, 5 > PLMD::Tensor5d
 

Functions

TensorGeneric< 3, 3 > PLMD::dcrossDv1 (const VectorGeneric< 3 > &v1, const VectorGeneric< 3 > &v2)
 
TensorGeneric< 3, 3 > PLMD::dcrossDv2 (const VectorGeneric< 3 > &v1, const VectorGeneric< 3 > &v2)
 
TensorGeneric< 3, 3 > PLMD::deriNorm (const VectorGeneric< 3 > &v1, const TensorGeneric< 3, 3 > &v2)
 
double PLMD::determinant (const TensorGeneric< 3, 3 > &t)
 
template<unsigned n, unsigned m>
void PLMD::diagMatSym (const TensorGeneric< n, n > &mat, VectorGeneric< m > &evals, TensorGeneric< m, n > &evec)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::extProduct (const VectorGeneric< n > &v1, const VectorGeneric< m > &v2)
 
TensorGeneric< 3, 3 > PLMD::inverse (const TensorGeneric< 3, 3 > &t)
 
template<unsigned n, unsigned m, unsigned l>
TensorGeneric< n, l > PLMD::matmul (const TensorGeneric< n, m > &a, const TensorGeneric< m, l > &b)
 
template<unsigned n, unsigned m>
VectorGeneric< n > PLMD::matmul (const TensorGeneric< n, m > &a, const VectorGeneric< m > &b)
 
template<unsigned n, unsigned m>
VectorGeneric< n > PLMD::matmul (const VectorGeneric< m > &a, const TensorGeneric< m, n > &b)
 
template<unsigned n_>
double PLMD::matmul (const VectorGeneric< n_ > &a, const VectorGeneric< n_ > &b)
 
template<unsigned n, unsigned m, unsigned l, unsigned i>
TensorGeneric< n, i > PLMD::matmul (const TensorGeneric< n, m > &a, const TensorGeneric< m, l > &b, const TensorGeneric< l, i > &c)
 
template<unsigned n, unsigned m, unsigned l>
VectorGeneric< n > PLMD::matmul (const TensorGeneric< n, m > &a, const TensorGeneric< m, l > &b, const VectorGeneric< l > &c)
 
template<unsigned n, unsigned m, unsigned l>
VectorGeneric< l > PLMD::matmul (const VectorGeneric< n > &a, const TensorGeneric< n, m > &b, const TensorGeneric< m, l > &c)
 
template<unsigned n, unsigned m>
double PLMD::matmul (const VectorGeneric< n > &a, const TensorGeneric< n, m > &b, const VectorGeneric< m > &c)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator* (const TensorGeneric< n, m > &t1, double s)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator* (double s, const TensorGeneric< n, m > &t1)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator+ (const TensorGeneric< n, m > &t1, const TensorGeneric< n, m > &t2)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator- (const TensorGeneric< n, m > &t1, const TensorGeneric< n, m > &t2)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator/ (const TensorGeneric< n, m > &t1, double s)
 
template<unsigned n, unsigned m>
std::ostream & PLMD::operator<< (std::ostream &os, const TensorGeneric< n, m > &t)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::transpose (const TensorGeneric< m, n > &t)
 
TensorGeneric< 3, 3 > PLMD::VcrossTensor (const VectorGeneric< 3 > &v1, const TensorGeneric< 3, 3 > &v2)
 
TensorGeneric< 3, 3 > PLMD::VcrossTensor (const TensorGeneric< 3, 3 > &v2, const VectorGeneric< 3 > &v1)