MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
matvec.h File Reference
#include <cassert>
#include <iostream>
#include "myassert.h"
#include "gradient.h"
#include "matvec3.h"
#include "matvec6.h"
#include "matvec3n.h"
#include "RotCoeff.hh"
#include "Rot.hh"
Include dependency graph for matvec.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  grad::VectorSize< T >
 
struct  grad::VectorSize< scalar_func_type >
 
struct  grad::VectorSize< Vec3 >
 
struct  grad::VectorSize< Vec6 >
 
class  grad::Matrix< T, N_rows, N_cols >
 
class  grad::Vector< T, N_rows >
 
class  grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >
 
class  grad::GenericUnaryExpression< ScalarUnaryFunction, T, ScalarExpr >
 
struct  grad::CommonScalarType< ScalarTypeLhs, ScalarTypeRhs >
 
struct  grad::CommonScalarType< Gradient< N_SIZE >, Gradient< N_SIZE > >
 
struct  grad::CommonScalarType< Gradient< N_SIZE >, scalar_func_type >
 
struct  grad::CommonScalarType< scalar_func_type, Gradient< N_SIZE > >
 
struct  grad::CommonScalarType< scalar_func_type, scalar_func_type >
 
struct  grad::BasicScalarType< T >
 
struct  grad::BasicScalarType< BinaryExpr< BinFunc, LhsExpr, RhsExpr > >
 
struct  grad::BasicScalarType< UnaryExpr< UnFunc, Expr > >
 
struct  grad::BasicScalarType< GradientExpression< Expression > >
 
struct  grad::BasicScalarType< DirectExpr< Gradient< N_SIZE >, ALIAS > >
 
struct  grad::BasicScalarType< ConstExpr< Gradient< N_SIZE > > >
 
struct  grad::BasicScalarType< GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr > >
 
struct  grad::BasicScalarType< GenericUnaryExpression< ScalarUnaryFunction, T, ScalarExpr > >
 
struct  grad::ScalarTypeTraits< T >
 
struct  grad::ScalarTypeTraits< Gradient< N_SIZE > >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, ScalarLhsExpr, ScalarRhsExpr >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, ScalarLhsExpr, Gradient< N_SIZE > >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, ScalarLhsExpr, scalar_func_type >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, Gradient< N_SIZE >, ScalarRhsExpr >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, scalar_func_type, ScalarRhsExpr >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, Gradient< N_SIZE >, Gradient< N_SIZE > >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, Gradient< N_SIZE >, scalar_func_type >
 
struct  grad::ScalarBinaryExpressionTraits< ScalarBinaryFunction, Gradient< N_SIZE >, scalar_func_type, Gradient< N_SIZE > >
 
struct  grad::ScalarUnaryExpressionTraits< ScalarUnaryFunction, T, ScalarExpr >
 
struct  grad::ScalarUnaryExpressionTraits< ScalarUnaryFunction, Gradient< N_SIZE >, ScalarExpr >
 
struct  grad::ScalarUnaryExpressionTraits< ScalarUnaryFunction, Gradient< N_SIZE >, Gradient< N_SIZE > >
 
class  grad::ScalarBinaryOperation< ScalarBinaryFunction, ScalarLhsExpr, ScalarRhsExpr >
 
class  grad::ScalarUnaryOperation< ScalarUnaryFunction, ScalarExpr >
 
struct  grad::IndexCheck< DIFF >
 
struct  grad::IndexCheck< 0L >
 
struct  grad::MatVecHelp::AliasTypeHelper< T >
 
struct  grad::MatVecHelp::AliasTypeHelper< scalar_func_type >
 
struct  grad::MatVecHelp::AliasTypeHelper< GradientExpression< Expression > >
 
struct  grad::MatVecHelp::AliasTypeHelper< DirectExpr< Gradient< N_SIZE >, ALIAS > >
 
struct  grad::MatVecHelp::AliasTypeHelper< Gradient< N_SIZE > >
 
struct  grad::MatVecHelp::AliasTypeHelper< BinaryExpr< BinFunc, LhsExpr, RhsExpr > >
 
struct  grad::MatVecHelp::AliasTypeHelper< UnaryExpr< UnFunc, Expr > >
 
struct  grad::MatVecHelp::ApplyAliasHelperMatrix< bAlias >
 
struct  grad::MatVecHelp::ApplyAliasHelperMatrix< false >
 
struct  grad::MatVecHelp::ApplyAliasHelperMatrix< true >
 
struct  grad::MatVecHelp::Assign
 
struct  grad::MatVecHelp::Add
 
struct  grad::MatVecHelp::Sub
 
struct  grad::MatVecHelp::Mul
 
struct  grad::MatVecHelp::Div
 
class  grad::VectorExpression< Expression, N_rows >
 
class  grad::MatrixExpression< Expression, N_rows, N_cols, CLEAR_ALIAS >
 
class  grad::VectorVectorVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, VectorRhsExpr >
 
class  grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >
 
class  grad::VectorVectorUnaryExpr< ScalarUnaryFunc, VectorExpr >
 
class  grad::SubVectorExpr< iStartIndex, iEndIndex, VectorExpr >
 
class  grad::VectorDirectExpr< VectorType, ALIAS >
 
class  grad::Vec3DirectExpr
 
class  grad::SliceVector< T, N_rows, N_offset >
 
class  grad::SliceVector< T, N_rows, DYNAMIC_SIZE >
 
class  grad::SliceVector< T, DYNAMIC_SIZE, N_offset >
 
class  grad::SliceVector< T, DYNAMIC_SIZE, DYNAMIC_SIZE >
 
class  grad::ColumnVectorExpr< MatrixExpr >
 
class  grad::RowVectorExpr< MatrixExpr >
 
class  grad::TransposedMatrix< MatrixExpr >
 
class  grad::SubMatrixExpr< iRowStart, iRowEnd, iColStart, iColEnd, MatrixExpr >
 
class  grad::MatrixMatrixMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, MatrixRhsExpr >
 
class  grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >
 
class  grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >
 
class  grad::MatrixDirectExpr< MatrixType, ALIAS >
 
class  grad::Mat3x3DirectExpr
 
class  grad::Mat3xNDirectExpr
 
class  grad::MatNxNDirectExpr
 
class  grad::MatrixInit< InitClass, T, N_rows, N_cols >
 
class  grad::VectorInit< InitClass, T, N_rows >
 
class  grad::VectorData< T, N_rows >
 
class  grad::VectorData< T, DYNAMIC_SIZE >
 
class  grad::MatrixData< T, N_rows, N_cols >
 
class  grad::MatrixData< T, DYNAMIC_SIZE, DYNAMIC_SIZE >
 
class  grad::MatrixData< T, N_rows, DYNAMIC_SIZE >
 
class  grad::MatrixData< T, DYNAMIC_SIZE, N_cols >
 
class  grad::Matrix< T, N_rows, N_cols >
 
class  grad::Vector< T, N_rows >
 
class  grad::MatCrossInit< T, VectorExpr >
 
class  grad::MatRInit< T, VectorExpr >
 
class  grad::MatCrossCrossInit< T, VectorExpr >
 
class  grad::MatGInit< T, VectorExpr >
 
class  grad::VecRotInit< T, MatrixExpr >
 
class  grad::TabularMatrixView< T, N_rows, N_cols >
 
struct  grad::SumTraits< VectorExpressionType, N_rows, N_index >
 
struct  grad::SumTraits< VectorExpressionType, N_rows, 1 >
 
struct  grad::DotTraits< VectorExprLhs, VectorExprRhs, N_rows, N_index >
 
struct  grad::DotTraits< VectorExprLhs, VectorExprRhs, N_rows, 1 >
 
struct  grad::CrossTraits< VectorLhsExpr, VectorRhsExpr >
 
class  grad::VectorCrossExpr< VectorLhsExpr, VectorRhsExpr >
 
class  grad::MatrixVectorProduct< N_rows, N_cols, MatrixLhsExpr, VectorRhsExpr >
 
class  grad::MatrixVectorProduct< DYNAMIC_SIZE, DYNAMIC_SIZE, MatrixLhsExpr, VectorRhsExpr >
 
class  grad::MatrixVectorProduct< N_rows, DYNAMIC_SIZE, MatrixLhsExpr, VectorRhsExpr >
 
class  grad::MatrixVectorProduct< DYNAMIC_SIZE, N_cols, MatrixLhsExpr, VectorRhsExpr >
 
class  grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >
 

Namespaces

 grad
 
 grad::MatVecHelp
 

Macros

#define MATVEC_DEBUG   0
 
#define MATVEC_ASSERT(expr)   ASSERT(expr)
 
#define VECTOR_VECTOR_DEFINE_BINARY_FUNCTION(ExpressionName, FunctionName, FunctionClass)
 
#define VECTOR_SCALAR_DEFINE_BINARY_FUNCTION(ExpressionName, FunctionName, FunctionClass)
 
#define VECTOR_DEFINE_UNARY_FUNCTION(ExpressionName, FunctionName, FunctionClass)
 
#define MATRIX_DEFINE_UNARY_FUNCTION(ExpressionName, FunctionName, FunctionClass)
 
#define MATRIX_MATRIX_DEFINE_BINARY_FUNCTION(ExpressionName, FunctionName, FunctionClass)
 
#define MATRIX_SCALAR_DEFINE_BINARY_FUNCTION(ExpressionName, FunctionName, FunctionClass)
 

Functions

template<typename ScalarType >
bool grad::bArrayOverlap (const ScalarType *pFirstArray1, const ScalarType *pLastArray1, const ScalarType *pFirstArray2, const ScalarType *pLastArray2)
 
template<typename ScalarType1 , typename ScalarType2 >
bool grad::bArrayOverlap (const ScalarType1 *, const ScalarType1 *, const ScalarType2 *, const ScalarType2 *)
 
template<typename T >
void grad::ZeroInit (T *first, T *last)
 
template<>
void grad::ZeroInit< float > (float *first, float *last)
 
template<>
void grad::ZeroInit< double > (double *first, double *last)
 
template<>
void grad::ZeroInit< long double > (long double *first, long double *last)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixDirectExpr< Matrix< T,
N_rows, N_cols > >, N_rows,
N_cols > 
grad::Direct (const Matrix< T, N_rows, N_cols > &A)
 
MatrixExpression
< Mat3x3DirectExpr, 3, 3 > 
grad::Direct (const Mat3x3 &A)
 
MatrixExpression
< Mat3xNDirectExpr,
3, DYNAMIC_SIZE > 
grad::Direct (const Mat3xN &A)
 
MatrixExpression
< MatNxNDirectExpr,
DYNAMIC_SIZE, DYNAMIC_SIZE > 
grad::Direct (const MatNxN &A)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< TransposedMatrix
< MatrixDirectExpr< Matrix< T,
N_rows, N_cols > > >, N_cols,
N_rows > 
grad::Transpose (const Matrix< T, N_rows, N_cols > &A)
 
MatrixExpression
< TransposedMatrix
< Mat3xNDirectExpr >
, DYNAMIC_SIZE, 3 > 
grad::Transpose (const Mat3xN &A)
 
MatrixExpression
< TransposedMatrix
< MatNxNDirectExpr >
, DYNAMIC_SIZE, DYNAMIC_SIZE > 
grad::Transpose (const MatNxN &A)
 
template<typename MatrixExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< TransposedMatrix< MatrixExpr >
, N_cols, N_rows > 
grad::Transpose (const MatrixExpression< MatrixExpr, N_rows, N_cols > &A)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixDirectExpr< Matrix< T,
N_rows, N_cols >, true >
, N_rows, N_cols > 
grad::Alias (const Matrix< T, N_rows, N_cols > &A)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorDirectExpr< Vector< T,
N_rows > >, N_rows > 
grad::Direct (const Vector< T, N_rows > &v)
 
VectorExpression
< Vec3DirectExpr, 3 > 
grad::Direct (const Vec3 &v)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorDirectExpr< Vector< T,
N_rows >, true >, N_rows > 
grad::Alias (const Vector< T, N_rows > &v)
 
template<index_type iStartIndex, index_type iEndIndex, typename T , index_type N_rows>
VectorExpression
< SubVectorExpr< iStartIndex,
iEndIndex, VectorDirectExpr
< Vector< T, N_rows >
> >, iEndIndex-iStartIndex+1 > 
grad::SubVector (const Vector< T, N_rows > &v)
 
template<index_type iStartIndex, index_type iEndIndex, typename VectorExpr , index_type N_rows>
VectorExpression
< SubVectorExpr< iStartIndex,
iEndIndex, VectorExpr >
, iEndIndex-iStartIndex+1 > 
grad::SubVector (const VectorExpression< VectorExpr, N_rows > &v)
 
template<index_type iRowStart, index_type iRowEnd, index_type iColStart, index_type iColEnd, typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< SubMatrixExpr< iRowStart,
iRowEnd, iColStart, iColEnd,
MatrixExpression
< MatrixDirectExpr< Matrix< T,
N_rows, N_cols > >, N_rows,
N_cols > >, iRowEnd-iRowStart+1,
iColEnd-iColStart+1 > 
grad::SubMatrix (const Matrix< T, N_rows, N_cols > &A)
 
template<index_type iRowStart, index_type iRowEnd, index_type iColStart, index_type iColEnd, typename MatrixExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< SubMatrixExpr< iRowStart,
iRowEnd, iColStart, iColEnd,
MatrixExpression< MatrixExpr,
N_rows, N_cols > >, iRowEnd-iRowStart+1,
iColEnd-iColStart+1 > 
grad::SubMatrix (const MatrixExpression< MatrixExpr, N_rows, N_cols > &A)
 
template<typename T >
MatrixInit< MatCrossInit< T,
VectorDirectExpr< Vector< T, 3 >
> >, T, 3, 3 > 
grad::MatCrossVec (const Vector< T, 3 > &v, doublereal d=0.)
 
template<typename T >
MatrixInit< MatCrossInit< T,
Vec3DirectExpr >, T, 3, 3 > 
grad::MatCrossVec (const Vec3 &v, doublereal d=0.)
 
template<typename VectorExpr >
MatrixInit< MatCrossInit
< typename
VectorExpr::ScalarType,
VectorExpr >, typename
VectorExpr::ScalarType, 3, 3 > 
grad::MatCrossVec (const VectorExpression< VectorExpr, 3 > &v, doublereal d=0.)
 
template<typename T >
MatrixInit< MatCrossCrossInit
< T, VectorDirectExpr< Vector
< T, 3 > > >, T, 3, 3 > 
grad::MatCrossCrossVec (const Vector< T, 3 > &v)
 
template<typename VectorExpr >
MatrixInit< MatCrossCrossInit
< typename
VectorExpr::ScalarType,
VectorExpr >, typename
VectorExpr::ScalarType, 3, 3 > 
grad::MatCrossCrossVec (const VectorExpression< VectorExpr, 3 > &v)
 
template<typename T >
MatrixInit< MatGInit< T,
VectorDirectExpr< Vector< T, 3 >
> >, T, 3, 3 > 
grad::MatGVec (const Vector< T, 3 > &g)
 
template<typename VectorExpr >
MatrixInit< MatGInit< typename
VectorExpr::ScalarType,
VectorExpr >, typename
VectorExpr::ScalarType, 3, 3 > 
grad::MatGVec (const VectorExpression< VectorExpr, 3 > &g)
 
template<typename T >
MatrixInit< MatRInit< T,
VectorDirectExpr< Vector< T, 3 >
> >, T, 3, 3 > 
grad::MatRVec (const Vector< T, 3 > &g)
 
template<typename VectorExpr >
MatrixInit< MatRInit< typename
VectorExpr::ScalarType,
VectorExpr >, typename
VectorExpr::ScalarType, 3, 3 > 
grad::MatRVec (const VectorExpression< VectorExpr, 3 > &g)
 
template<typename T >
VectorInit< VecRotInit< T,
MatrixDirectExpr< Matrix< T, 3, 3 >
> >, T, 3 > 
grad::VecRotMat (const Matrix< T, 3, 3 > &R)
 
template<typename T , index_type N_rows, index_type N_cols>
TabularMatrixView< T, N_rows,
N_cols > 
grad::Tabular (const Matrix< T, N_rows, N_cols > &A, int iColWidth=10)
 
template<typename T , index_type N_rows, index_type N_cols>
std::ostream & grad::operator<< (std::ostream &os, const Matrix< T, N_rows, N_cols > &A)
 
template<typename T , index_type N_rows, index_type N_cols>
std::ostream & grad::operator<< (std::ostream &os, const TabularMatrixView< T, N_rows, N_cols > &tabA)
 
template<typename T , index_type N_rows>
std::ostream & grad::operator<< (std::ostream &os, const Vector< T, N_rows > &x)
 
template<typename VectorExpressionType , index_type N_rows>
SumTraits
< VectorExpressionType, N_rows,
N_rows >::ExpressionType 
grad::Sum (const VectorExpression< VectorExpressionType, N_rows > &v)
 
template<typename T , index_type N_rows>
SumTraits< VectorDirectExpr
< Vector< T, N_rows >
>, N_rows, N_rows >
::ExpressionType 
grad::Sum (const Vector< T, N_rows > &v)
 
template<typename VectorExprLhs , typename VectorExprRhs , index_type N_rows>
DotTraits< VectorExprLhs,
VectorExprRhs, N_rows, N_rows >
::ExpressionType 
grad::Dot (const VectorExpression< VectorExprLhs, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
 
template<typename VectorExprLhs , typename T , index_type N_rows>
DotTraits< VectorExprLhs,
VectorDirectExpr< Vector< T,
N_rows > >, N_rows, N_rows >
::ExpressionType 
grad::Dot (const VectorExpression< VectorExprLhs, N_rows > &u, const Vector< T, N_rows > &v)
 
template<typename T , typename VectorExprRhs , index_type N_rows>
DotTraits< VectorDirectExpr
< Vector< T, N_rows >
>, VectorExprRhs, N_rows,
N_rows >::ExpressionType 
grad::Dot (const Vector< T, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
 
template<typename T_Lhs , typename T_Rhs , index_type N_rows>
DotTraits< VectorDirectExpr
< Vector< T_Lhs, N_rows >
>, VectorDirectExpr< Vector
< T_Rhs, N_rows > >, N_rows,
N_rows >::ExpressionType 
grad::Dot (const Vector< T_Lhs, N_rows > &u, const Vector< T_Rhs, N_rows > &v)
 
template<typename T_Lhs , index_type N_rows>
DotTraits< VectorDirectExpr
< Vector< T_Lhs, N_rows >
>, Vec3DirectExpr, N_rows,
N_rows >::ExpressionType 
grad::Dot (const Vector< T_Lhs, N_rows > &u, const Vec3 &v)
 
template<typename VectorExpr , index_type N_rows>
VectorExpression< VectorExpr,
N_rows >::ScalarType 
grad::Norm (const VectorExpression< VectorExpr, N_rows > &u)
 
template<typename T , index_type N_rows>
grad::Norm (const Vector< T, N_rows > &u)
 
template<typename VectorLhsExpr , typename VectorRhsExpr >
VectorExpression
< VectorCrossExpr
< VectorLhsExpr, VectorRhsExpr >, 3 > 
grad::Cross (const VectorExpression< VectorLhsExpr, 3 > &u, const VectorExpression< VectorRhsExpr, 3 > &v)
 
template<typename VectorLhsExpr , typename T_Rhs >
VectorExpression
< VectorCrossExpr
< VectorLhsExpr,
VectorDirectExpr< Vector
< T_Rhs, 3 > > >, 3 > 
grad::Cross (const VectorExpression< VectorLhsExpr, 3 > &u, const Vector< T_Rhs, 3 > &v)
 
template<typename T_Lhs , typename VectorRhsExpr >
VectorExpression
< VectorCrossExpr
< VectorDirectExpr< Vector
< T_Lhs, 3 > >, VectorRhsExpr >, 3 > 
grad::Cross (const Vector< T_Lhs, 3 > &u, const VectorExpression< VectorRhsExpr, 3 > &v)
 
template<typename T_Lhs , typename T_Rhs >
VectorExpression
< VectorCrossExpr
< VectorDirectExpr< Vector
< T_Lhs, 3 >
>, VectorDirectExpr< Vector
< T_Rhs, 3 > > >, 3 > 
grad::Cross (const Vector< T_Lhs, 3 > &u, const Vector< T_Rhs, 3 > &v)
 
template<typename T_Lhs >
VectorExpression
< VectorCrossExpr
< VectorDirectExpr< Vector
< T_Lhs, 3 > >, Vec3DirectExpr >, 3 > 
grad::Cross (const Vector< T_Lhs, 3 > &u, const Vec3 &v)
 
template<typename T >
grad::Det (const Matrix< T, 2, 2 > &A)
 
template<typename T >
Matrix< T, 2, 2 > grad::Inv (const Matrix< T, 2, 2 > &A)
 
template<typename MatrixLhsExpr , index_type N_rows, index_type N_cols, typename VectorRhsExpr >
VectorExpression
< MatrixVectorProduct< N_rows,
N_cols, MatrixExpression
< MatrixLhsExpr, N_rows,
N_cols >, VectorExpression
< VectorRhsExpr, N_cols >
>, N_rows > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &A, const VectorExpression< VectorRhsExpr, N_cols > &x)
 
template<typename T , index_type N_rows, index_type N_cols, typename VectorRhsExpr >
VectorExpression
< MatrixVectorProduct< N_rows,
N_cols, MatrixExpression
< MatrixDirectExpr< Matrix< T,
N_rows, N_cols > >, N_rows,
N_cols >, VectorExpression
< VectorRhsExpr, N_cols >
>, N_rows > 
grad::operator* (const Matrix< T, N_rows, N_cols > &A, const VectorExpression< VectorRhsExpr, N_cols > &x)
 
template<typename MatrixLhsExpr , index_type N_rows, index_type N_cols, typename T >
VectorExpression
< MatrixVectorProduct< N_rows,
N_cols, MatrixExpression
< MatrixLhsExpr, N_rows,
N_cols >, VectorExpression
< VectorDirectExpr< Vector< T,
N_cols > >, N_cols > >, N_rows > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &A, const Vector< T, N_cols > &x)
 
template<typename T1 , typename T2 , index_type N_rows, index_type N_cols>
VectorExpression
< MatrixVectorProduct< N_rows,
N_cols, MatrixExpression
< MatrixDirectExpr< Matrix< T1,
N_rows, N_cols > >, N_rows,
N_cols >, VectorExpression
< VectorDirectExpr< Vector< T2,
N_cols > >, N_cols > >, N_rows > 
grad::operator* (const Matrix< T1, N_rows, N_cols > &A, const Vector< T2, N_cols > &x)
 
template<typename T , index_type N_rows>
VectorExpression
< MatrixVectorProduct< N_rows,
3, MatrixExpression
< MatrixDirectExpr< Matrix< T,
N_rows, 3 > >, N_rows, 3 >
, VectorExpression
< Vec3DirectExpr, 3 >
>, N_rows > 
grad::operator* (const Matrix< T, N_rows, 3 > &A, const Vec3 &x)
 
template<typename T >
VectorExpression
< MatrixVectorProduct
< 3, 3, MatrixExpression
< Mat3x3DirectExpr, 3, 3 >
, VectorExpression
< VectorDirectExpr< Vector< T, 3 > >, 3 > >, 3 > 
grad::operator* (const Mat3x3 &A, const Vector< T, 3 > &x)
 
template<typename T >
VectorExpression
< MatrixVectorProduct
< DYNAMIC_SIZE, DYNAMIC_SIZE,
MatrixExpression
< MatNxNDirectExpr,
DYNAMIC_SIZE, DYNAMIC_SIZE >
, VectorExpression
< VectorDirectExpr< Vector< T,
DYNAMIC_SIZE > >, DYNAMIC_SIZE >
>, DYNAMIC_SIZE > 
grad::operator* (const MatNxN &A, const Vector< T, DYNAMIC_SIZE > &x)
 
template<typename T >
VectorExpression
< MatrixVectorProduct
< 3, DYNAMIC_SIZE,
MatrixExpression
< Mat3xNDirectExpr,
3, DYNAMIC_SIZE >
, VectorExpression
< VectorDirectExpr< Vector< T,
DYNAMIC_SIZE > >, DYNAMIC_SIZE > >, 3 > 
grad::operator* (const Mat3xN &A, const Vector< T, DYNAMIC_SIZE > &x)
 
template<typename MatrixLhsExpr , index_type N_rows_Lhs, index_type N_cols_Lhs, typename MatrixRhsExpr , index_type N_cols_Rhs>
MatrixExpression
< MatrixMatrixProduct
< MatrixExpression
< MatrixLhsExpr, N_rows_Lhs,
N_cols_Lhs >, MatrixExpression
< MatrixRhsExpr, N_cols_Lhs,
N_cols_Rhs > >, N_rows_Lhs,
N_cols_Rhs > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows_Lhs, N_cols_Lhs > &A, const MatrixExpression< MatrixRhsExpr, N_cols_Lhs, N_cols_Rhs > &B)
 
template<typename MatrixLhsExpr , index_type N_rows_Lhs, index_type N_cols_Lhs, typename T , index_type N_cols_Rhs>
MatrixExpression
< MatrixMatrixProduct
< MatrixExpression
< MatrixLhsExpr, N_rows_Lhs,
N_cols_Lhs >, MatrixDirectExpr
< Matrix< T, N_cols_Lhs,
N_cols_Rhs > > >, N_rows_Lhs,
N_cols_Rhs > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows_Lhs, N_cols_Lhs > &A, const Matrix< T, N_cols_Lhs, N_cols_Rhs > &B)
 
template<typename T , index_type N_rows_Lhs, index_type N_cols_Lhs, typename MatrixRhsExpr , index_type N_cols_Rhs>
MatrixExpression
< MatrixMatrixProduct
< MatrixDirectExpr< Matrix< T,
N_rows_Lhs, N_cols_Lhs >
>, MatrixExpression
< MatrixRhsExpr, N_cols_Lhs,
N_cols_Rhs > >, N_rows_Lhs,
N_cols_Rhs > 
grad::operator* (const Matrix< T, N_rows_Lhs, N_cols_Lhs > &A, const MatrixExpression< MatrixRhsExpr, N_cols_Lhs, N_cols_Rhs > &B)
 
template<typename T_Lhs , index_type N_rows_Lhs, index_type N_cols_Lhs, typename T_Rhs , index_type N_cols_Rhs>
MatrixExpression
< MatrixMatrixProduct
< MatrixDirectExpr< Matrix
< T_Lhs, N_rows_Lhs,
N_cols_Lhs >
>, MatrixDirectExpr< Matrix
< T_Rhs, N_cols_Lhs,
N_cols_Rhs > > >, N_rows_Lhs,
N_cols_Rhs > 
grad::operator* (const Matrix< T_Lhs, N_rows_Lhs, N_cols_Lhs > &A, const Matrix< T_Rhs, N_cols_Lhs, N_cols_Rhs > &B)
 
template<typename T , index_type N_rows_Lhs>
MatrixExpression
< MatrixMatrixProduct
< MatrixDirectExpr< Matrix< T,
N_rows_Lhs, 3 >
>, Mat3x3DirectExpr >
, N_rows_Lhs, 3 > 
grad::operator* (const Matrix< T, N_rows_Lhs, 3 > &A, const Mat3x3 &B)
 
template<typename T , index_type N_cols_Rhs>
MatrixExpression
< MatrixMatrixProduct
< Mat3x3DirectExpr,
MatrixDirectExpr< Matrix< T,
3, N_cols_Rhs >
> >, 3, N_cols_Rhs > 
grad::operator* (const Mat3x3 &A, const Matrix< T, 3, N_cols_Rhs > &B)
 
template<typename VectorLhsExpr , typename VectorRhsExpr , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
VectorLhsExpr::ExpressionType,
typename
VectorRhsExpr::ExpressionType >
, VectorLhsExpr, VectorRhsExpr >
, N_rows > 
grad::operator+ (const VectorExpression< VectorLhsExpr, N_rows > &u, const VectorExpression< VectorRhsExpr, N_rows > &v)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, VectorDirectExpr< Vector< T,
N_rows > >, VectorDirectExpr
< Vector< T, N_rows >
> >, N_rows > 
grad::operator+ (const Vector< T, N_rows > &u, const Vector< T, N_rows > &v)
 
template<typename T1 , typename T2 , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
ScalarTypeTraits< T1 >
::DirectExpressionType,
typename ScalarTypeTraits< T2 >
::DirectExpressionType >
, VectorDirectExpr< Vector< T1,
N_rows > >, VectorDirectExpr
< Vector< T2, N_rows >
> >, N_rows > 
grad::operator+ (const Vector< T1, N_rows > &u, const Vector< T2, N_rows > &v)
 
template<typename T1 , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
ScalarTypeTraits< T1 >
::DirectExpressionType,
typename ScalarTypeTraits
< doublereal >
::DirectExpressionType >
, VectorDirectExpr< Vector< T1,
N_rows > >, Vec3DirectExpr >
, N_rows > 
grad::operator+ (const Vector< T1, N_rows > &u, const Vec3 &v)
 
template<index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, scalar_func_type,
scalar_func_type >
, VectorDirectExpr< Vector
< scalar_func_type, N_rows >
>, VectorDirectExpr< Vector
< scalar_func_type, N_rows >
> >, N_rows > 
grad::operator+ (const Vector< scalar_func_type, N_rows > &u, const Vector< scalar_func_type, N_rows > &v)
 
template<typename VectorLhsExpr , typename T , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
VectorLhsExpr::ExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, VectorLhsExpr,
VectorDirectExpr< Vector< T,
N_rows > > >, N_rows > 
grad::operator+ (const VectorExpression< VectorLhsExpr, N_rows > &u, const Vector< T, N_rows > &v)
 
template<typename T , index_type N_rows, typename VectorRhsExpr >
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename
VectorRhsExpr::ExpressionType >
, VectorDirectExpr< Vector< T,
N_rows > >, VectorRhsExpr >
, N_rows > 
grad::operator+ (const Vector< T, N_rows > &u, const VectorExpression< VectorRhsExpr, N_rows > &v)
 
template<typename VectorLhsExpr , typename VectorRhsExpr , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
VectorLhsExpr::ExpressionType,
typename
VectorRhsExpr::ExpressionType >
, VectorLhsExpr, VectorRhsExpr >
, N_rows > 
grad::operator- (const VectorExpression< VectorLhsExpr, N_rows > &u, const VectorExpression< VectorRhsExpr, N_rows > &v)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, VectorDirectExpr< Vector< T,
N_rows > >, VectorDirectExpr
< Vector< T, N_rows >
> >, N_rows > 
grad::operator- (const Vector< T, N_rows > &u, const Vector< T, N_rows > &v)
 
template<typename T1 , typename T2 , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
ScalarTypeTraits< T1 >
::DirectExpressionType,
typename ScalarTypeTraits< T2 >
::DirectExpressionType >
, VectorDirectExpr< Vector< T1,
N_rows > >, VectorDirectExpr
< Vector< T2, N_rows >
> >, N_rows > 
grad::operator- (const Vector< T1, N_rows > &u, const Vector< T2, N_rows > &v)
 
template<typename T1 , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
ScalarTypeTraits< T1 >
::DirectExpressionType,
typename ScalarTypeTraits
< doublereal >
::DirectExpressionType >
, VectorDirectExpr< Vector< T1,
N_rows > >, Vec3DirectExpr >
, N_rows > 
grad::operator- (const Vector< T1, N_rows > &u, const Vec3 &v)
 
template<index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, scalar_func_type,
scalar_func_type >
, VectorDirectExpr< Vector
< scalar_func_type, N_rows >
>, VectorDirectExpr< Vector
< scalar_func_type, N_rows >
> >, N_rows > 
grad::operator- (const Vector< scalar_func_type, N_rows > &u, const Vector< scalar_func_type, N_rows > &v)
 
template<typename VectorLhsExpr , typename T , index_type N_rows>
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
VectorLhsExpr::ExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, VectorLhsExpr,
VectorDirectExpr< Vector< T,
N_rows > > >, N_rows > 
grad::operator- (const VectorExpression< VectorLhsExpr, N_rows > &u, const Vector< T, N_rows > &v)
 
template<typename T , index_type N_rows, typename VectorRhsExpr >
VectorExpression
< VectorVectorVectorBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename
VectorRhsExpr::ExpressionType >
, VectorDirectExpr< Vector< T,
N_rows > >, VectorRhsExpr >
, N_rows > 
grad::operator- (const Vector< T, N_rows > &u, const VectorExpression< VectorRhsExpr, N_rows > &v)
 
template<typename VectorLhsExpr , typename ScalarRhsExpr , index_type N_rows>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
VectorLhsExpr::ExpressionType,
ScalarRhsExpr >, VectorLhsExpr,
ScalarRhsExpr >, N_rows > 
grad::operator* (const VectorExpression< VectorLhsExpr, N_rows > &u, const GradientExpression< ScalarRhsExpr > &v)
 
template<typename VectorLhsExpr , index_type N_rows, index_type N_SIZE>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
VectorLhsExpr::ExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, VectorLhsExpr,
DirectExpr< Gradient< N_SIZE >
> >, N_rows > 
grad::operator* (const VectorExpression< VectorLhsExpr, N_rows > &u, const Gradient< N_SIZE > &v)
 
template<typename VectorLhsExpr , index_type N_rows>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
VectorLhsExpr::ExpressionType,
scalar_func_type >
, VectorLhsExpr,
scalar_func_type >, N_rows > 
grad::operator* (const VectorExpression< VectorLhsExpr, N_rows > &u, scalar_func_type v)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
ScalarTypeTraits< T >
::DirectExpressionType,
scalar_func_type >
, VectorDirectExpr< Vector< T,
N_rows > >, scalar_func_type >
, N_rows > 
grad::operator* (const Vector< T, N_rows > &u, scalar_func_type v)
 
template<typename T , index_type N_rows, index_type N_SIZE>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
ScalarTypeTraits< T >
::DirectExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, VectorDirectExpr< Vector
< T, N_rows > >, DirectExpr
< Gradient< N_SIZE >
> >, N_rows > 
grad::operator* (const Vector< T, N_rows > &u, const Gradient< N_SIZE > &v)
 
template<typename T , index_type N_rows, typename RhsExpr >
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
ScalarTypeTraits< T >
::DirectExpressionType,
GradientExpression< RhsExpr >
>, VectorDirectExpr< Vector
< T, N_rows >
>, GradientExpression
< RhsExpr > >, N_rows > 
grad::operator* (const Vector< T, N_rows > &u, const GradientExpression< RhsExpr > &v)
 
template<typename VectorLhsExpr , typename ScalarRhsExpr , index_type N_rows>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
VectorLhsExpr::ExpressionType,
ScalarRhsExpr >, VectorLhsExpr,
ScalarRhsExpr >, N_rows > 
grad::operator/ (const VectorExpression< VectorLhsExpr, N_rows > &u, const GradientExpression< ScalarRhsExpr > &v)
 
template<typename VectorLhsExpr , index_type N_rows, index_type N_SIZE>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
VectorLhsExpr::ExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, VectorLhsExpr,
DirectExpr< Gradient< N_SIZE >
> >, N_rows > 
grad::operator/ (const VectorExpression< VectorLhsExpr, N_rows > &u, const Gradient< N_SIZE > &v)
 
template<typename VectorLhsExpr , index_type N_rows>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
VectorLhsExpr::ExpressionType,
scalar_func_type >
, VectorLhsExpr,
scalar_func_type >, N_rows > 
grad::operator/ (const VectorExpression< VectorLhsExpr, N_rows > &u, scalar_func_type v)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
ScalarTypeTraits< T >
::DirectExpressionType,
scalar_func_type >
, VectorDirectExpr< Vector< T,
N_rows > >, scalar_func_type >
, N_rows > 
grad::operator/ (const Vector< T, N_rows > &u, scalar_func_type v)
 
template<typename T , index_type N_rows, index_type N_SIZE>
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
ScalarTypeTraits< T >
::DirectExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, VectorDirectExpr< Vector
< T, N_rows > >, DirectExpr
< Gradient< N_SIZE >
> >, N_rows > 
grad::operator/ (const Vector< T, N_rows > &u, const Gradient< N_SIZE > &v)
 
template<typename T , index_type N_rows, typename RhsExpr >
VectorExpression
< VectorScalarVectorBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
ScalarTypeTraits< T >
::DirectExpressionType,
GradientExpression< RhsExpr >
>, VectorDirectExpr< Vector
< T, N_rows >
>, GradientExpression
< RhsExpr > >, N_rows > 
grad::operator/ (const Vector< T, N_rows > &u, const GradientExpression< RhsExpr > &v)
 
template<typename VectorExpr , index_type N_rows>
VectorExpression
< VectorVectorUnaryExpr
< ScalarUnaryOperation
< FuncUnaryMinus, typename
VectorExpr::ExpressionType >
, VectorExpr >, N_rows > 
grad::operator- (const VectorExpression< VectorExpr, N_rows > &u)
 
template<typename T , index_type N_rows>
VectorExpression
< VectorVectorUnaryExpr
< ScalarUnaryOperation
< FuncUnaryMinus, typename
ScalarTypeTraits< T >
::DirectExpressionType >
, VectorDirectExpr< Vector< T,
N_rows > > >, N_rows > 
grad::operator- (const Vector< T, N_rows > &u)
 
template<typename MatrixLhsExpr , typename MatrixRhsExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
MatrixLhsExpr::ExpressionType,
typename
MatrixRhsExpr::ExpressionType >
, MatrixLhsExpr, MatrixRhsExpr >
, N_rows, N_cols > 
grad::operator+ (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const MatrixExpression< MatrixRhsExpr, N_rows, N_cols > &v)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols >
>, MatrixDirectExpr< Matrix
< T, N_rows, N_cols >
> >, N_rows, N_cols > 
grad::operator+ (const Matrix< T, N_rows, N_cols > &u, const Matrix< T, N_rows, N_cols > &v)
 
template<typename MatrixLhsExpr , typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
MatrixLhsExpr::ExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, MatrixLhsExpr,
MatrixDirectExpr< Matrix< T,
N_rows, N_cols > > >, N_rows,
N_cols > 
grad::operator+ (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const Matrix< T, N_rows, N_cols > &v)
 
template<typename T , index_type N_rows, index_type N_cols, typename MatrixRhsExpr >
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncPlus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename
MatrixRhsExpr::ExpressionType >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols >
>, MatrixRhsExpr >, N_rows,
N_cols > 
grad::operator+ (const Matrix< T, N_rows, N_cols > &u, const MatrixExpression< MatrixRhsExpr, N_rows, N_cols > &v)
 
template<typename MatrixLhsExpr , typename MatrixRhsExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
MatrixLhsExpr::ExpressionType,
typename
MatrixRhsExpr::ExpressionType >
, MatrixLhsExpr, MatrixRhsExpr >
, N_rows, N_cols > 
grad::operator- (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const MatrixExpression< MatrixRhsExpr, N_rows, N_cols > &v)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols >
>, MatrixDirectExpr< Matrix
< T, N_rows, N_cols >
> >, N_rows, N_cols > 
grad::operator- (const Matrix< T, N_rows, N_cols > &u, const Matrix< T, N_rows, N_cols > &v)
 
template<typename MatrixLhsExpr , typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
MatrixLhsExpr::ExpressionType,
typename ScalarTypeTraits< T >
::DirectExpressionType >
, MatrixLhsExpr,
MatrixDirectExpr< Matrix< T,
N_rows, N_cols > > >, N_rows,
N_cols > 
grad::operator- (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const Matrix< T, N_rows, N_cols > &v)
 
template<typename T , index_type N_rows, index_type N_cols, typename MatrixRhsExpr >
MatrixExpression
< MatrixMatrixMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMinus, typename
ScalarTypeTraits< T >
::DirectExpressionType,
typename
MatrixRhsExpr::ExpressionType >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols >
>, MatrixRhsExpr >, N_rows,
N_cols > 
grad::operator- (const Matrix< T, N_rows, N_cols > &u, const MatrixExpression< MatrixRhsExpr, N_rows, N_cols > &v)
 
template<typename MatrixLhsExpr , typename ScalarRhsExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
MatrixLhsExpr::ExpressionType,
ScalarRhsExpr >, MatrixLhsExpr,
ScalarRhsExpr >, N_rows,
N_cols > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const GradientExpression< ScalarRhsExpr > &v)
 
template<typename MatrixLhsExpr , index_type N_rows, index_type N_cols, index_type N_SIZE>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
MatrixLhsExpr::ExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, MatrixLhsExpr,
DirectExpr< Gradient< N_SIZE >
> >, N_rows, N_cols > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const Gradient< N_SIZE > &v)
 
template<typename MatrixLhsExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
MatrixLhsExpr::ExpressionType,
scalar_func_type >
, MatrixLhsExpr,
scalar_func_type >, N_rows,
N_cols > 
grad::operator* (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, scalar_func_type v)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
ScalarTypeTraits< T >
::DirectExpressionType,
scalar_func_type >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols >
>, scalar_func_type >, N_rows,
N_cols > 
grad::operator* (const Matrix< T, N_rows, N_cols > &u, scalar_func_type v)
 
template<typename T , index_type N_rows, index_type N_cols, index_type N_SIZE>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
ScalarTypeTraits< T >
::DirectExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, MatrixDirectExpr< Matrix
< T, N_rows, N_cols >
>, DirectExpr< Gradient
< N_SIZE > > >, N_rows, N_cols > 
grad::operator* (const Matrix< T, N_rows, N_cols > &u, const Gradient< N_SIZE > &v)
 
template<typename T , index_type N_rows, index_type N_cols, typename RhsExpr >
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncMult, typename
ScalarTypeTraits< T >
::DirectExpressionType,
GradientExpression< RhsExpr >
>, MatrixDirectExpr< Matrix
< T, N_rows, N_cols >
>, GradientExpression
< RhsExpr > >, N_rows, N_cols > 
grad::operator* (const Matrix< T, N_rows, N_cols > &u, const GradientExpression< RhsExpr > &v)
 
template<typename MatrixLhsExpr , typename ScalarRhsExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
MatrixLhsExpr::ExpressionType,
ScalarRhsExpr >, MatrixLhsExpr,
ScalarRhsExpr >, N_rows,
N_cols > 
grad::operator/ (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const GradientExpression< ScalarRhsExpr > &v)
 
template<typename MatrixLhsExpr , index_type N_rows, index_type N_cols, index_type N_SIZE>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
MatrixLhsExpr::ExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, MatrixLhsExpr,
DirectExpr< Gradient< N_SIZE >
> >, N_rows, N_cols > 
grad::operator/ (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, const Gradient< N_SIZE > &v)
 
template<typename MatrixLhsExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
MatrixLhsExpr::ExpressionType,
scalar_func_type >
, MatrixLhsExpr,
scalar_func_type >, N_rows,
N_cols > 
grad::operator/ (const MatrixExpression< MatrixLhsExpr, N_rows, N_cols > &u, scalar_func_type v)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
ScalarTypeTraits< T >
::DirectExpressionType,
scalar_func_type >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols >
>, scalar_func_type >, N_rows,
N_cols > 
grad::operator/ (const Matrix< T, N_rows, N_cols > &u, scalar_func_type v)
 
template<typename T , index_type N_rows, index_type N_cols, index_type N_SIZE>
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
ScalarTypeTraits< T >
::DirectExpressionType,
DirectExpr< Gradient< N_SIZE >
> >, MatrixDirectExpr< Matrix
< T, N_rows, N_cols >
>, DirectExpr< Gradient
< N_SIZE > > >, N_rows, N_cols > 
grad::operator/ (const Matrix< T, N_rows, N_cols > &u, const Gradient< N_SIZE > &v)
 
template<typename T , index_type N_rows, index_type N_cols, typename RhsExpr >
MatrixExpression
< MatrixScalarMatrixBinaryExpr
< ScalarBinaryOperation
< FuncDiv, typename
ScalarTypeTraits< T >
::DirectExpressionType,
GradientExpression< RhsExpr >
>, MatrixDirectExpr< Matrix
< T, N_rows, N_cols >
>, GradientExpression
< RhsExpr > >, N_rows, N_cols > 
grad::operator/ (const Matrix< T, N_rows, N_cols > &u, const GradientExpression< RhsExpr > &v)
 
template<typename MatrixExpr , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixUnaryExpr
< ScalarUnaryOperation
< FuncUnaryMinus, typename
MatrixExpr::ExpressionType >
, MatrixExpr >, N_rows, N_cols > 
grad::operator- (const MatrixExpression< MatrixExpr, N_rows, N_cols > &u)
 
template<typename T , index_type N_rows, index_type N_cols>
MatrixExpression
< MatrixMatrixUnaryExpr
< ScalarUnaryOperation
< FuncUnaryMinus, typename
ScalarTypeTraits< T >
::DirectExpressionType >
, MatrixDirectExpr< Matrix< T,
N_rows, N_cols > > >, N_rows,
N_cols > 
grad::operator- (const Matrix< T, N_rows, N_cols > &u)
 

Macro Definition Documentation

#define MATRIX_DEFINE_UNARY_FUNCTION (   ExpressionName,
  FunctionName,
  FunctionClass 
)
Value:
template <typename MatrixExpr, index_type N_rows, index_type N_cols> \
inline MatrixExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename MatrixExpr::ExpressionType>, MatrixExpr>, N_rows, N_cols> \
FunctionName(const MatrixExpression<MatrixExpr, N_rows, N_cols>& u) { \
return MatrixExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename MatrixExpr::ExpressionType>, MatrixExpr>, N_rows, N_cols>(u); \
} \
\
template <typename T, index_type N_rows, index_type N_cols> \
inline MatrixExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType>, MatrixDirectExpr<Matrix<T, N_rows, N_cols> > >, N_rows, N_cols> \
FunctionName(const Matrix<T, N_rows, N_cols>& u) { \
return MatrixExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType>, MatrixDirectExpr<Matrix<T, N_rows, N_cols> > >, N_rows, N_cols>(u); \
}

Definition at line 3647 of file matvec.h.

#define MATRIX_MATRIX_DEFINE_BINARY_FUNCTION (   ExpressionName,
  FunctionName,
  FunctionClass 
)
Value:
template <typename MatrixLhsExpr, typename MatrixRhsExpr, index_type N_rows, index_type N_cols> \
inline MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename MatrixLhsExpr::ExpressionType, typename MatrixRhsExpr::ExpressionType>, MatrixLhsExpr, MatrixRhsExpr>, N_rows, N_cols> \
FunctionName(const MatrixExpression<MatrixLhsExpr, N_rows, N_cols>& u, const MatrixExpression<MatrixRhsExpr, N_rows, N_cols>& v) { \
return MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename MatrixLhsExpr::ExpressionType, typename MatrixRhsExpr::ExpressionType>, MatrixLhsExpr, MatrixRhsExpr>, N_rows, N_cols>(u, v); \
} \
\
template <typename T, index_type N_rows, index_type N_cols> \
inline MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType, typename ScalarTypeTraits<T>::DirectExpressionType>, MatrixDirectExpr<Matrix<T, N_rows, N_cols> >, MatrixDirectExpr<Matrix<T, N_rows, N_cols> > >, N_rows, N_cols> \
FunctionName(const Matrix<T, N_rows, N_cols>& u, const Matrix<T, N_rows, N_cols>& v) { \
return MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType, typename ScalarTypeTraits<T>::DirectExpressionType>, MatrixDirectExpr<Matrix<T, N_rows, N_cols> >, MatrixDirectExpr<Matrix<T, N_rows, N_cols> > >, N_rows, N_cols>(u, v); \
} \
\
template <typename MatrixLhsExpr, typename T, index_type N_rows, index_type N_cols> \
inline MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename MatrixLhsExpr::ExpressionType, typename ScalarTypeTraits<T>::DirectExpressionType >, MatrixLhsExpr, MatrixDirectExpr<Matrix<T, N_rows, N_cols> > >, N_rows, N_cols> \
FunctionName(const MatrixExpression<MatrixLhsExpr, N_rows, N_cols>& u, const Matrix<T, N_rows, N_cols>& v) { \
return MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename MatrixLhsExpr::ExpressionType, typename ScalarTypeTraits<T>::DirectExpressionType >, MatrixLhsExpr, MatrixDirectExpr<Matrix<T, N_rows, N_cols> > >, N_rows, N_cols>(u, v); \
} \
\
template <typename T, index_type N_rows, index_type N_cols, typename MatrixRhsExpr> \
inline MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType, typename MatrixRhsExpr::ExpressionType>, MatrixDirectExpr<Matrix<T, N_rows, N_cols> >, MatrixRhsExpr>, N_rows, N_cols> \
FunctionName(const Matrix<T, N_rows, N_cols>& u, const MatrixExpression<MatrixRhsExpr, N_rows, N_cols>& v) { \
return MatrixExpression<ExpressionName<ScalarBinaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType, typename MatrixRhsExpr::ExpressionType>, MatrixDirectExpr<Matrix<T, N_rows, N_cols> >, MatrixRhsExpr>, N_rows, N_cols>(u, v); \
}

Definition at line 3660 of file matvec.h.

#define MATRIX_SCALAR_DEFINE_BINARY_FUNCTION (   ExpressionName,
  FunctionName,
  FunctionClass 
)

Definition at line 3685 of file matvec.h.

#define MATVEC_ASSERT (   expr)    ASSERT(expr)

Definition at line 64 of file matvec.h.

Referenced by grad::Matrix< T, N_rows, N_cols >::ApplyMatrixFuncNoAlias(), grad::Vector< T, N_rows >::ApplyMatrixFuncNoAlias(), grad::bArrayOverlap(), grad::ColumnVectorExpr< MatrixExpr >::ColumnVectorExpr(), grad::Matrix< T, N_rows, N_cols >::Copy(), grad::Vector< T, N_rows >::Copy(), grad::TransposedMatrix< MatrixExpr >::GetCol(), grad::SubMatrixExpr< iRowStart, iRowEnd, iColStart, iColEnd, MatrixExpr >::GetCol(), grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::GetCol(), grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >::GetCol(), grad::MatrixDirectExpr< MatrixType, ALIAS >::GetCol(), grad::Mat3x3DirectExpr::GetCol(), grad::Matrix< T, N_rows, N_cols >::GetCol(), grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >::GetCol(), grad::TransposedMatrix< MatrixExpr >::GetRow(), grad::SubMatrixExpr< iRowStart, iRowEnd, iColStart, iColEnd, MatrixExpr >::GetRow(), grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::GetRow(), grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >::GetRow(), grad::MatrixDirectExpr< MatrixType, ALIAS >::GetRow(), grad::Mat3x3DirectExpr::GetRow(), grad::Matrix< T, N_rows, N_cols >::GetRow(), grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >::GetRow(), grad::TransposedMatrix< MatrixExpr >::iGetNumCols(), grad::MatrixMatrixMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, MatrixRhsExpr >::iGetNumCols(), grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iGetNumCols(), grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >::iGetNumCols(), grad::MatrixDirectExpr< MatrixType, ALIAS >::iGetNumCols(), grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >::iGetNumCols(), grad::VectorVectorVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, VectorRhsExpr >::iGetNumRows(), grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::iGetNumRows(), grad::VectorVectorUnaryExpr< ScalarUnaryFunc, VectorExpr >::iGetNumRows(), grad::SubVectorExpr< iStartIndex, iEndIndex, VectorExpr >::iGetNumRows(), grad::VectorDirectExpr< VectorType, ALIAS >::iGetNumRows(), grad::TransposedMatrix< MatrixExpr >::iGetNumRows(), grad::MatrixMatrixMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, MatrixRhsExpr >::iGetNumRows(), grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iGetNumRows(), grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >::iGetNumRows(), grad::MatrixDirectExpr< MatrixType, ALIAS >::iGetNumRows(), grad::Vector< T, N_rows >::iGetNumRows(), grad::MatrixVectorProduct< N_rows, N_cols, MatrixLhsExpr, VectorRhsExpr >::iGetNumRows(), grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >::iGetNumRows(), grad::MatrixData< ScalarType, iNumRows, iNumCols >::MatrixData(), grad::MatrixData< T, N_rows, DYNAMIC_SIZE >::MatrixData(), grad::MatrixData< T, DYNAMIC_SIZE, N_cols >::MatrixData(), grad::MatrixDirectExpr< MatrixType, ALIAS >::MatrixDirectExpr(), grad::MatrixMatrixMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, MatrixRhsExpr >::MatrixMatrixMatrixBinaryExpr(), grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >::MatrixMatrixProduct(), grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >::MatrixMatrixUnaryExpr(), grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::MatrixScalarMatrixBinaryExpr(), grad::MatrixVectorProduct< N_rows, N_cols, MatrixLhsExpr, VectorRhsExpr >::MatrixVectorProduct(), grad::VectorVectorVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, VectorRhsExpr >::operator()(), grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::operator()(), grad::VectorVectorUnaryExpr< ScalarUnaryFunc, VectorExpr >::operator()(), grad::SubVectorExpr< iStartIndex, iEndIndex, VectorExpr >::operator()(), grad::VectorDirectExpr< VectorType, ALIAS >::operator()(), grad::Vec3DirectExpr::operator()(), grad::SliceVector< T, N_rows, N_offset >::operator()(), grad::SliceVector< T, N_rows, DYNAMIC_SIZE >::operator()(), grad::SliceVector< T, DYNAMIC_SIZE, N_offset >::operator()(), grad::SliceVector< T, DYNAMIC_SIZE, DYNAMIC_SIZE >::operator()(), grad::ColumnVectorExpr< MatrixExpr >::operator()(), grad::RowVectorExpr< MatrixExpr >::operator()(), grad::TransposedMatrix< MatrixExpr >::operator()(), grad::SubMatrixExpr< iRowStart, iRowEnd, iColStart, iColEnd, MatrixExpr >::operator()(), grad::MatrixMatrixMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, MatrixRhsExpr >::operator()(), grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::operator()(), grad::MatrixMatrixUnaryExpr< ScalarUnaryFunc, MatrixExpr >::operator()(), grad::MatrixDirectExpr< MatrixType, ALIAS >::operator()(), grad::Mat3x3DirectExpr::operator()(), grad::Mat3xNDirectExpr::operator()(), grad::MatNxNDirectExpr::operator()(), grad::MatrixData< ScalarType, iNumRows, iNumCols >::operator()(), grad::MatrixData< T, DYNAMIC_SIZE, DYNAMIC_SIZE >::operator()(), grad::MatrixData< T, N_rows, DYNAMIC_SIZE >::operator()(), grad::MatrixData< T, DYNAMIC_SIZE, N_cols >::operator()(), grad::Matrix< T, N_rows, N_cols >::operator()(), grad::Vector< T, N_rows >::operator()(), grad::VectorCrossExpr< VectorLhsExpr, VectorRhsExpr >::operator()(), grad::MatrixVectorProduct< N_rows, N_cols, MatrixLhsExpr, VectorRhsExpr >::operator()(), grad::MatrixVectorProduct< DYNAMIC_SIZE, DYNAMIC_SIZE, MatrixLhsExpr, VectorRhsExpr >::operator()(), grad::MatrixMatrixProduct< MatrixLhsExpr, MatrixRhsExpr >::operator()(), grad::operator*(), grad::Matrix< T, N_rows, N_cols >::operator+=(), grad::Vector< T, N_rows >::operator+=(), grad::Matrix< T, N_rows, N_cols >::operator-=(), grad::Vector< T, N_rows >::operator-=(), grad::VectorData< ScalarType, N_rows >::operator[](), grad::VectorData< T, DYNAMIC_SIZE >::operator[](), grad::VectorData< ScalarType, N_rows >::Resize(), grad::MatrixData< ScalarType, iNumRows, iNumCols >::Resize(), grad::MatrixData< T, N_rows, DYNAMIC_SIZE >::Resize(), grad::MatrixData< T, DYNAMIC_SIZE, N_cols >::Resize(), grad::RowVectorExpr< MatrixExpr >::RowVectorExpr(), grad::SliceVector< T, N_rows, N_offset >::SliceVector(), grad::SliceVector< T, N_rows, DYNAMIC_SIZE >::SliceVector(), grad::SliceVector< T, DYNAMIC_SIZE, N_offset >::SliceVector(), grad::SubMatrixExpr< iRowStart, iRowEnd, iColStart, iColEnd, MatrixExpr >::SubMatrixExpr(), grad::SubVector(), grad::TransposedMatrix< MatrixExpr >::TransposedMatrix(), grad::Vector< T, N_rows >::Vector(), grad::VectorCrossExpr< VectorLhsExpr, VectorRhsExpr >::VectorCrossExpr(), and grad::VectorData< ScalarType, N_rows >::VectorData().

#define MATVEC_DEBUG   0

Definition at line 59 of file matvec.h.

#define VECTOR_DEFINE_UNARY_FUNCTION (   ExpressionName,
  FunctionName,
  FunctionClass 
)
Value:
template <typename VectorExpr, index_type N_rows> \
inline VectorExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename VectorExpr::ExpressionType>, VectorExpr>, N_rows> \
FunctionName(const VectorExpression<VectorExpr, N_rows>& u) { \
return VectorExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename VectorExpr::ExpressionType>, VectorExpr>, N_rows>(u); \
} \
\
template <typename T, index_type N_rows> \
inline VectorExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType>, VectorDirectExpr<Vector<T, N_rows> > >, N_rows> \
FunctionName(const Vector<T, N_rows>& u) { \
return VectorExpression<ExpressionName<ScalarUnaryOperation<FunctionClass, typename ScalarTypeTraits<T>::DirectExpressionType>, VectorDirectExpr<Vector<T, N_rows> > >, N_rows>(u); \
}

Definition at line 3634 of file matvec.h.

#define VECTOR_SCALAR_DEFINE_BINARY_FUNCTION (   ExpressionName,
  FunctionName,
  FunctionClass 
)

Definition at line 3597 of file matvec.h.

#define VECTOR_VECTOR_DEFINE_BINARY_FUNCTION (   ExpressionName,
  FunctionName,
  FunctionClass 
)

Definition at line 3554 of file matvec.h.