MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
grad::Mat3x3DirectExpr Class Reference

#include <matvec.h>

Collaboration diagram for grad::Mat3x3DirectExpr:

Public Types

typedef ScalarTypeTraits
< doublereal >::ScalarType 
ScalarType
 
typedef ScalarTypeTraits
< doublereal >
::DirectExpressionType 
ExpressionType
 
typedef VectorExpression
< SliceVector< doublereal,
iNumCols, iNumRows >, iNumCols
RowVectorType
 
typedef VectorExpression
< SliceVector< doublereal,
iNumRows, 1 >, iNumRows
ColumnVectorType
 

Public Member Functions

 Mat3x3DirectExpr (const Mat3x3 &A)
 
const ScalarTypeoperator() (index_type i, index_type j) const
 
index_type iGetNumRows () const
 
index_type iGetNumCols () const
 
RowVectorType GetRow (index_type iRow) const
 
ColumnVectorType GetCol (index_type iCol) const
 
template<typename ScalarType2 >
bool bHaveReferenceTo (const ScalarType2 *pFirst, const ScalarType2 *pLast) const
 

Static Public Attributes

static const bool bAlias = false
 
static const index_type iNumRows = 3
 
static const index_type iNumCols = 3
 

Private Attributes

const Mat3x3A
 

Detailed Description

Definition at line 1465 of file matvec.h.

Member Typedef Documentation

Definition at line 1472 of file matvec.h.

Constructor & Destructor Documentation

grad::Mat3x3DirectExpr::Mat3x3DirectExpr ( const Mat3x3 A)
inline

Definition at line 1477 of file matvec.h.

1478  :A(A) {
1479 
1480  }
const Mat3x3 & A
Definition: matvec.h:1518

Member Function Documentation

template<typename ScalarType2 >
bool grad::Mat3x3DirectExpr::bHaveReferenceTo ( const ScalarType2 *  pFirst,
const ScalarType2 *  pLast 
) const
inline

Definition at line 1513 of file matvec.h.

References A, grad::bArrayOverlap(), iNumCols, iNumRows, and Mat3x3::pGetMat().

1513  {
1514  return bArrayOverlap(A.pGetMat(), A.pGetMat() + (iNumRows - 1) * (iNumCols - 1), pFirst, pLast);
1515  }
static const index_type iNumCols
Definition: matvec.h:1469
const Mat3x3 & A
Definition: matvec.h:1518
static const index_type iNumRows
Definition: matvec.h:1468
bool bArrayOverlap(const ScalarType *pFirstArray1, const ScalarType *pLastArray1, const ScalarType *pFirstArray2, const ScalarType *pLastArray2)
Definition: matvec.h:430
const doublereal * pGetMat(void) const
Definition: matvec3.h:743

Here is the call graph for this function:

ColumnVectorType grad::Mat3x3DirectExpr::GetCol ( index_type  iCol) const
inline

Definition at line 1505 of file matvec.h.

References A, iGetNumCols(), iGetNumRows(), iNumRows, MATVEC_ASSERT, and Mat3x3::pGetMat().

1505  {
1506  MATVEC_ASSERT(iCol >= 1);
1507  MATVEC_ASSERT(iCol <= iGetNumCols());
1508  --iCol;
1509  return ColumnVectorType(A.pGetMat() + iCol * iNumRows, iGetNumRows(), 1);
1510  }
const Mat3x3 & A
Definition: matvec.h:1518
static const index_type iNumRows
Definition: matvec.h:1468
#define MATVEC_ASSERT(expr)
Definition: matvec.h:64
index_type iGetNumRows() const
Definition: matvec.h:1490
const doublereal * pGetMat(void) const
Definition: matvec3.h:743
index_type iGetNumCols() const
Definition: matvec.h:1494
VectorExpression< SliceVector< doublereal, iNumRows, 1 >, iNumRows > ColumnVectorType
Definition: matvec.h:1475

Here is the call graph for this function:

RowVectorType grad::Mat3x3DirectExpr::GetRow ( index_type  iRow) const
inline

Definition at line 1498 of file matvec.h.

References A, iGetNumCols(), iGetNumRows(), MATVEC_ASSERT, and Mat3x3::pGetMat().

1498  {
1499  MATVEC_ASSERT(iRow >= 1);
1500  MATVEC_ASSERT(iRow <= iGetNumRows());
1501  --iRow;
1502  return RowVectorType(A.pGetMat() + iRow, iGetNumCols(), iGetNumRows());
1503  }
const Mat3x3 & A
Definition: matvec.h:1518
#define MATVEC_ASSERT(expr)
Definition: matvec.h:64
index_type iGetNumRows() const
Definition: matvec.h:1490
VectorExpression< SliceVector< doublereal, iNumCols, iNumRows >, iNumCols > RowVectorType
Definition: matvec.h:1474
const doublereal * pGetMat(void) const
Definition: matvec3.h:743
index_type iGetNumCols() const
Definition: matvec.h:1494

Here is the call graph for this function:

index_type grad::Mat3x3DirectExpr::iGetNumCols ( void  ) const
inline

Definition at line 1494 of file matvec.h.

References iNumCols.

Referenced by GetCol(), GetRow(), and operator()().

1494  {
1495  return iNumCols;
1496  }
static const index_type iNumCols
Definition: matvec.h:1469
index_type grad::Mat3x3DirectExpr::iGetNumRows ( void  ) const
inline

Definition at line 1490 of file matvec.h.

References iNumRows.

Referenced by GetCol(), GetRow(), and operator()().

1490  {
1491  return iNumRows;
1492  }
static const index_type iNumRows
Definition: matvec.h:1468
const ScalarType& grad::Mat3x3DirectExpr::operator() ( index_type  i,
index_type  j 
) const
inline

Definition at line 1482 of file matvec.h.

References A, iGetNumCols(), iGetNumRows(), and MATVEC_ASSERT.

1482  {
1483  MATVEC_ASSERT(i >= 1);
1484  MATVEC_ASSERT(i <= iGetNumRows());
1485  MATVEC_ASSERT(j >= 1);
1486  MATVEC_ASSERT(j <= iGetNumCols());
1487  return A(i, j);
1488  }
const Mat3x3 & A
Definition: matvec.h:1518
#define MATVEC_ASSERT(expr)
Definition: matvec.h:64
index_type iGetNumRows() const
Definition: matvec.h:1490
index_type iGetNumCols() const
Definition: matvec.h:1494

Here is the call graph for this function:

Member Data Documentation

const Mat3x3& grad::Mat3x3DirectExpr::A
private

Definition at line 1518 of file matvec.h.

Referenced by bHaveReferenceTo(), GetCol(), GetRow(), and operator()().

const bool grad::Mat3x3DirectExpr::bAlias = false
static

Definition at line 1467 of file matvec.h.

const index_type grad::Mat3x3DirectExpr::iNumCols = 3
static

Definition at line 1469 of file matvec.h.

Referenced by bHaveReferenceTo(), and iGetNumCols().

const index_type grad::Mat3x3DirectExpr::iNumRows = 3
static

Definition at line 1468 of file matvec.h.

Referenced by bHaveReferenceTo(), GetCol(), and iGetNumRows().


The documentation for this class was generated from the following file: