Itasca C++ Interface
Loading...
Searching...
No Matches
Classes | Functions
matrix.h File Reference

A template-based matrix class, size fixed at compile time. More...

#include "symtensor.h"
#include <cassert>

Go to the source code of this file.

Classes

class  Matrix< T, SX, SY >
 A template-based matrix class, size fixed at compile time. Defaults to symmetric sized matrix. More...
 
class  Matrix< T, SX, 1 >
 A specialization of the Matrix class for the case when SY=1. More...
 
class  SymMatrix< T, SX >
 A template-based symmetric matrix class, size fixed at compile time. This primitive template-based matrix class should be used where the matrix size is fixed at compile time. More...
 
class  innerLoopMS< T, SX, SY, I, J, K >
 
class  innerLoopMS< T, SX, SY, I, J, 1 >
 
class  loop2MultiplyMS< T, SX, SY, I, J >
 
class  loop2MultiplyMS< T, SX, SY, I, 1 >
 
class  loopMultiplyMS< T, SX, SY, I >
 
class  loopMultiplyMS< T, SX, SY, 1 >
 
class  VMatrix< T, S >
 A 1-Dimensional version of Matrix, to represent a vector. More...
 
class  DMatrix< SX, SY >
 DMatrix is a Matrix that defaults to type double... More...
 
class  DSymMatrix< SX >
 DSymMatrix is a SymMatrix that defaults to type double... More...
 
class  DVMatrix< S >
 DVMatrix is a double version of VMatrix. More...
 

Functions

template<class T , unsigned SX, unsigned SY>
Matrix< T, SX, SY > operator* (const Matrix< T, SX, SY > &m, const SymMatrix< T, SY > &s)
 
template<class T , unsigned S>
double innerProduct (const VMatrix< T, S > &v1, const VMatrix< T, S > &v2)
 
template<class T >
double innerProduct (const VMatrix< T, 3 > &v1, const DVect3 &v2)
 
template<class T >
double innerProduct (const VMatrix< T, 2 > &v1, const DVect2 &v2)
 
template<class T , unsigned S>
Matrix< T, S, S > outerProduct (const VMatrix< T, S > &v1, const VMatrix< T, S > &v2)
 
template<class T >
constexpr std::tuple< Matrix< T, 3, 3 >, double > inverseDet (const Matrix< T, 3, 3 > &mat)
 
template<class T , unsigned SX>
constexpr VMatrix< T, SX > toVMatrix (const Vector2< T > &v, unsigned start=0)
 Converts a Vector2 into a VMatrix of arbitrary size, at an arbitrary starting index.
 
template<unsigned SX>
constexpr DVMatrix< SX > toDVMatrix (const DVect2 &v, unsigned start=0)
 
template<class T , unsigned SX>
constexpr VMatrix< T, SX > toVMatrix (const Vector3< T > &v, unsigned start=0)
 Converts a Vector3 into a VMatrix of arbitrary size, at an arbitrary starting index.
 
template<unsigned SX>
DVMatrix< SX > constexpr toDVMatrix (const DVect3 &v, unsigned start=0)
 
BASE_EXPORT DMatrix< 2, 2 > toMatrix2 (const SymTensor &s)
 
BASE_EXPORT DSymMatrix< 2 > toSymMatrix2 (const SymTensor &s)
 
SymTensor toSymTensor (const DMatrix< 2, 2 > &m)
 
template<class T , unsigned SX>
Vector2< T > toVector2 (const VMatrix< T, SX > &m, unsigned start=0)
 Converts a VMatrix to a Vector2, using two elements starting at index start.
 
template<class T , unsigned SX>
Vector3< T > toVector3 (const VMatrix< T, SX > &m, unsigned start=0)
 Converts a VMatrix to a Vector3, using three elements starting at index start.
 
template<class T >
Vector2< T > toVector (const VMatrix< T, 2 > &m)
 Converts a VMatrix to a Vector3, using three elements starting at index start.
 
template<class T >
Vector3< T > toVector (const VMatrix< T, 3 > &m)
 Converts a VMatrix to a Vector3, using three elements starting at index start.
 
template<class T , unsigned SY>
Vector2< T > columnToVector (const Matrix< T, 2, SY > &m, unsigned col)
 returns in a Vector2<t> the column col from matrix Matrix<T,SX,2>
 
template<class T , unsigned SY>
Vector3< T > columnToVector (const Matrix< T, 3, SY > &m, unsigned col)
 returns in a Vector3<t> the column col from a matrix Matrix<T,SX,3>
 
template<class T , unsigned SX>
Vector2< T > rowToVector (const Matrix< T, SX, 2 > &m, unsigned row)
 returns in a Vector2<t> the row row from matrix Matrix<T,SX,2>
 
template<class T , unsigned SX>
Vector3< T > rowToVector (const Matrix< T, SX, 3 > &m, unsigned row)
 returns in a Vector3<t> the row row from matrix Matrix<T,SX,3>
 
template<class T , unsigned SY>
constexpr void vectorToColumn (Matrix< T, 2, SY > &m, const DVect2 &v, unsigned col)
 
template<class T , unsigned SY>
constexpr void vectorToColumn (Matrix< T, 3, SY > &m, const DVect3 &v, unsigned col)
 
template<class T , unsigned SX, unsigned SY>
constexpr void vectorToColumn (Matrix< T, SX, SY > &m, const VMatrix< T, SX > &v, unsigned col)
 
template<class T , unsigned SX>
void vectorToRow (Matrix< T, SX, 2 > &m, const DVect2 &v, unsigned row)
 
template<class T , unsigned SX>
void vectorToRow (Matrix< T, SX, 3 > &m, const DVect3 &v, unsigned row)
 
template<class T , unsigned SX, unsigned SY>
constexpr void vectorToRow (Matrix< T, SX, SY > &m, const VMatrix< T, SY > &v, unsigned row)
 
template<class T , unsigned SX, unsigned SY>
VMatrix< T, SX > column (const Matrix< T, SX, SY > &m, unsigned c)
 
DVMatrix< 3 > operator* (const SymTensor &s, const DVMatrix< 3 > &v)
 
DVMatrix< 2 > operator* (const SymTensor &s, const DVMatrix< 2 > &v)
 

Detailed Description

A template-based matrix class, size fixed at compile time.