ERC CISST - cisst software

nmrLUFixedSizeData< _rows, _cols > Class Template Reference
[Numerical Methods]

#include <nmrLU.h>

Collaboration diagram for nmrLUFixedSizeData< _rows, _cols >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<vct::size_type _rows, vct::size_type _cols>
class nmrLUFixedSizeData< _rows, _cols >

Data of LU problem (Fixed size).

This class is similar to nmrLUDynamicData except that it is dedicated to fixed size containers. While nmrLUDynamicData is designed to be modified dynamically, nmrLUFixedSizeData is fully defined at compilation time using template parameters. The required parameters are the dimensions of the input matrix:

  nmrLUFixedSizeData<4, 3> data;

Note:
An object of type nmrLUFixedSizeData contains the memory required for the output, i.e. its actual size will be equal to the memory required to store the vector PivotIndices.

There is no dynamic memory allocation (no new) and the memory can not be used by reference. To use memory by reference, one must use nmrLUDynamicData with vctDynamicMatrixRef and vctDynamicVectorRef (these dynamic references can actually be used to overlay a fixed size container).

Definition at line 471 of file nmrLU.h.

Public Types

Public Member Functions

Static Public Member Functions

Protected Attributes


Member Typedef Documentation

template<vct::size_type _rows, vct::size_type _cols>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, _cols, VCT_COL_MAJOR> nmrLUFixedSizeData< _rows, _cols >::MatrixTypeA

Type of the input matrix A (size computed from the data template parameters).

Definition at line 480 of file nmrLU.h.

template<vct::size_type _rows, vct::size_type _cols>
typedef vctFixedSizeVector<CISSTNETLIB_INTEGER, MIN_MN> nmrLUFixedSizeData< _rows, _cols >::VectorTypePivotIndices

Type of the output vector PivotIndices (size computed from the data template parameters).

Definition at line 483 of file nmrLU.h.

template<vct::size_type _rows, vct::size_type _cols>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, _rows, VCT_COL_MAJOR> nmrLUFixedSizeData< _rows, _cols >::MatrixTypeP

Type used to create the permutation matrix from the vector PivotIndices.

Definition at line 486 of file nmrLU.h.

template<vct::size_type _rows, vct::size_type _cols>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, MIN_MN, VCT_COL_MAJOR> nmrLUFixedSizeData< _rows, _cols >::MatrixTypeL

Type used to create the L matrix from the input matrix (A) after nmrLU has been called.

Definition at line 489 of file nmrLU.h.

template<vct::size_type _rows, vct::size_type _cols>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, MIN_MN, _cols, VCT_COL_MAJOR> nmrLUFixedSizeData< _rows, _cols >::MatrixTypeU

Type used to create the U matrix from the input matrix (A) after nmrLU has been called.

Definition at line 492 of file nmrLU.h.


Constructor & Destructor Documentation

template<vct::size_type _rows, vct::size_type _cols>
nmrLUFixedSizeData< _rows, _cols >::nmrLUFixedSizeData (  )  [inline]

Default constructor. Does nothing since the allocation is performed on the stack.

Definition at line 520 of file nmrLU.h.


Member Function Documentation

template<vct::size_type _rows, vct::size_type _cols>
const VectorTypePivotIndices& nmrLUFixedSizeData< _rows, _cols >::PivotIndices ( void   )  const [inline]

Const reference to the result vector PivotIndices. This method must be called after the data has been computed by the nmrLU function.

Definition at line 525 of file nmrLU.h.

References nmrLUFixedSizeData< _rows, _cols >::PivotIndicesMember.

Referenced by nmrLU().

template<vct::size_type _rows, vct::size_type _cols>
static MatrixTypeP& nmrLUFixedSizeData< _rows, _cols >::UpdateMatrixP ( const VectorTypePivotIndices pivotIndices,
MatrixTypeP P 
) throw (std::runtime_error) [inline, static]

Helper method to create a usable permutation matrix from the vector of pivot indices created by nmrLU.

Note:
This method must be called after the nmrLU function has been called.
Parameters:
pivotIndices The vector of pivot indices as computed by nmrLU
P The permutation matrix updated from the pivot indices.

Definition at line 539 of file nmrLU.h.

References vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::SetAll().

template<vct::size_type _rows, vct::size_type _cols>
static void nmrLUFixedSizeData< _rows, _cols >::UpdateMatrixLU ( const MatrixTypeA A,
MatrixTypeL L,
MatrixTypeU U 
) throw (std::runtime_error) [inline, static]

Helper method to create usable matrix L and U from the input matrix used and modified by nmrLU. The output of nmrLU is a single matrix which contains both L and U. This method splits the output of nmrLU and creates to matrices by copying the lower and upper parts respectively in L and U, setting all other elements to zero. The diagonal of the output is copied to U while all the elements of the diagonal of L are set to 1.

Note:
This method must be called after the nmrLU function has been called.
Parameters:
A The matrix decomposed using nmrLU.
L The lower matrix
U The upper matrix

Definition at line 570 of file nmrLU.h.


Member Data Documentation

template<vct::size_type _rows, vct::size_type _cols>
VectorTypePivotIndices nmrLUFixedSizeData< _rows, _cols >::PivotIndicesMember [protected]

Data member used to store the output vector PivotIndices.

Definition at line 495 of file nmrLU.h.

Referenced by nmrLUFixedSizeData< _rows, _cols >::PivotIndices().


The documentation for this class was generated from the following file:
erc-cisst-devel<at>lists.johnshopkins.edu