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

Classes

class  PLMD::TensorGeneric< n, m >
 Class implementing fixed size matrices of doubles. More...
 

Namespaces

 PLMD
 

Typedefs

typedef TensorGeneric< 2, 2 > PLMD::Tensor2d
 
typedef TensorGeneric< 3, 3 > PLMD::Tensor3d
 
typedef TensorGeneric< 4, 4 > PLMD::Tensor4d
 
typedef Tensor3d PLMD::Tensor
 

Functions

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>
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, double s)
 
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)
 
double PLMD::determinant (const TensorGeneric< 3, 3 > &t)
 
TensorGeneric< 3, 3 > PLMD::inverse (const TensorGeneric< 3, 3 > &t)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::transpose (const TensorGeneric< m, n > &t)
 
template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::extProduct (const VectorGeneric< n > &v1, const VectorGeneric< m > &v2)
 
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)
 
template<unsigned n, unsigned m>
std::ostream & PLMD::operator<< (std::ostream &os, const TensorGeneric< n, m > &t)