![]() |
Orfeo Toolbox
3.16
|
a compressed row sparse matrix representation that makes use of itpack to dynamically assemble the matrix More...
#include <itkFEMItpackSparseMatrix.h>
Public Types | |
| typedef double | doublereal |
| typedef long | integer |
Public Member Functions | |
| ItpackSparseMatrix () | |
| ItpackSparseMatrix (integer order) | |
| ItpackSparseMatrix (integer order, integer maxNonZeroValues) | |
| ~ItpackSparseMatrix () | |
| void | Add (integer i, integer j, doublereal value) |
| void | Clear () |
| doublereal | Get (integer i, integer j) |
| doublereal * | GetA () |
| integer * | GetColumnArray () |
| integer * | GetIA () |
| integer * | GetJA () |
| integer | GetMaxNonZeroValues () const |
| integer * | GetN () |
| integer | GetOrder () const |
| integer * | GetRowArray () |
| doublereal * | GetValueArray () |
| void | mult (doublereal *vector, doublereal *result) |
| void | mult (ItpackSparseMatrix *rightMatrix, ItpackSparseMatrix *resultMatrix) |
| void | PrintCompressedRow () |
| void | Set (integer i, integer j, doublereal value) |
| void | SetCompressedRow (integer *ia, integer *ja, doublereal *a) |
| void | SetMaxNonZeroValues (integer maxNonZeroValues) |
| void | SetOrder (integer order) |
Private Member Functions | |
| void | Finalize () |
| void | Initialize () |
| void | UnFinalize () |
Private Attributes | |
| doublereal * | m_A |
| integer * | m_IA |
| integer * | m_IWORK |
| integer * | m_JA |
| integer | m_LEVEL |
| integer | m_MatrixFinalized |
| integer | m_MatrixInitialized |
| integer | m_MODE |
| integer | m_N |
| integer | m_NOUT |
| integer | m_NZ |
Friends | |
| class | LinearSystemWrapperItpack |
a compressed row sparse matrix representation that makes use of itpack to dynamically assemble the matrix
Definition at line 37 of file itkFEMItpackSparseMatrix.h.
| typedef double itk::fem::ItpackSparseMatrix::doublereal |
Definition at line 43 of file itkFEMItpackSparseMatrix.h.
| typedef long itk::fem::ItpackSparseMatrix::integer |
typedefs from f2c.h
Definition at line 42 of file itkFEMItpackSparseMatrix.h.
| itk::fem::ItpackSparseMatrix::ItpackSparseMatrix | ( | ) |
Constructor
Definition at line 24 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_MODE, m_N, m_NOUT, and m_NZ.
| itk::fem::ItpackSparseMatrix::ItpackSparseMatrix | ( | integer | order | ) |
Constructor with single parameter
| order | the order of the matrix to be created |
Definition at line 41 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_MODE, m_N, m_NOUT, and m_NZ.
Constructor with two parameters
| order | the order of the matrix to be created |
| maxNonZeroValues | the maximum number of non-zero values that may appear in the matrix |
Definition at line 59 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_MODE, m_N, m_NOUT, and m_NZ.
| itk::fem::ItpackSparseMatrix::~ItpackSparseMatrix | ( | ) |
| void itk::fem::ItpackSparseMatrix::Add | ( | integer | i, |
| integer | j, | ||
| doublereal | value | ||
| ) |
Add to existing entry of matrix
| i | row index |
| j | column index |
| value | value to add to current value at (i,j) |
Definition at line 266 of file itkFEMItpackSparseMatrix.cxx.
References Initialize(), m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_MODE, m_N, m_NOUT, m_NZ, sbsij_(), and UnFinalize().
| void itk::fem::ItpackSparseMatrix::Clear | ( | void | ) |
Clear the memory
Definition at line 138 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_MODE, m_N, m_NOUT, and m_NZ.
|
private |
| ItpackSparseMatrix::doublereal itk::fem::ItpackSparseMatrix::Get | ( | integer | i, |
| integer | j | ||
| ) |
Get a value from the matrix
| i | row index |
| j | column index |
Definition at line 311 of file itkFEMItpackSparseMatrix.cxx.
References Finalize(), m_A, m_IA, m_JA, m_MatrixFinalized, and m_MatrixInitialized.
Referenced by mult().
| ItpackSparseMatrix::doublereal * itk::fem::ItpackSparseMatrix::GetA | ( | void | ) |
Get the values of the matrix (via "itpack-like" naming scheme)
Definition at line 347 of file itkFEMItpackSparseMatrix.cxx.
References Finalize(), m_A, m_MatrixFinalized, and m_MatrixInitialized.
Referenced by GetValueArray().
|
inline |
Get the column indices
Definition at line 139 of file itkFEMItpackSparseMatrix.h.
References GetJA().
| ItpackSparseMatrix::integer * itk::fem::ItpackSparseMatrix::GetIA | ( | ) |
Get the row indices of the matrix (via "itpack-like" naming scheme)
Definition at line 356 of file itkFEMItpackSparseMatrix.cxx.
References Finalize(), m_IA, m_MatrixFinalized, and m_MatrixInitialized.
Referenced by GetRowArray().
| ItpackSparseMatrix::integer * itk::fem::ItpackSparseMatrix::GetJA | ( | ) |
Get the column indices of the matrix (via "itpack-like" naming scheme)
Definition at line 365 of file itkFEMItpackSparseMatrix.cxx.
References Finalize(), m_JA, m_MatrixFinalized, and m_MatrixInitialized.
Referenced by GetColumnArray().
|
inline |
Get the maximum number of non-zero values allowed in the matrix
Definition at line 154 of file itkFEMItpackSparseMatrix.h.
References m_NZ.
|
inline |
Get the order of the matrix (via "itpack-like" naming scheme)
Definition at line 107 of file itkFEMItpackSparseMatrix.h.
References m_N.
|
inline |
Get the order of the matrix
Definition at line 149 of file itkFEMItpackSparseMatrix.h.
References m_N.
Referenced by mult().
|
inline |
|
inline |
Get the values of the matrix
Definition at line 134 of file itkFEMItpackSparseMatrix.h.
References GetA().
|
private |
initialize matrix
Definition at line 78 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_IWORK, m_JA, m_MatrixFinalized, m_MatrixInitialized, m_N, m_NZ, sbini_(), and Set().
| void itk::fem::ItpackSparseMatrix::mult | ( | doublereal * | vector, |
| doublereal * | result | ||
| ) |
Multiply the matrix by a vector
Definition at line 374 of file itkFEMItpackSparseMatrix.cxx.
References Finalize(), m_A, m_IA, m_JA, m_MatrixFinalized, and m_N.
| void itk::fem::ItpackSparseMatrix::mult | ( | ItpackSparseMatrix * | rightMatrix, |
| ItpackSparseMatrix * | resultMatrix | ||
| ) |
Multiply the matrix by another ItpackSparseMatrix
Definition at line 414 of file itkFEMItpackSparseMatrix.cxx.
References Finalize(), Get(), GetOrder(), m_A, m_IA, m_JA, m_MatrixFinalized, m_N, and Set().
| void itk::fem::ItpackSparseMatrix::PrintCompressedRow | ( | ) |
output compressed row vectors: IA, JA, A
| void itk::fem::ItpackSparseMatrix::Set | ( | integer | i, |
| integer | j, | ||
| doublereal | value | ||
| ) |
Insert a value into the matrix
| i | row index |
| j | column index |
| value | value to be added at (i,j) |
Definition at line 224 of file itkFEMItpackSparseMatrix.cxx.
References Initialize(), m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_MODE, m_N, m_NOUT, m_NZ, sbsij_(), and UnFinalize().
Referenced by Initialize(), and mult().
| void itk::fem::ItpackSparseMatrix::SetCompressedRow | ( | integer * | ia, |
| integer * | ja, | ||
| doublereal * | a | ||
| ) |
Pass pointers to compressed row format arrays
| ia | row indices |
| ja | column indices |
| a | matrix values |
Definition at line 467 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_JA, m_MatrixFinalized, and m_MatrixInitialized.
|
inline |
Set the maximum number of non-zero values that may appear in the matrix
| maxNonZeroValues | maximum number of non-zero values that may appear in matrix |
Definition at line 80 of file itkFEMItpackSparseMatrix.h.
References m_NZ.
|
inline |
Set the order of the matrix
| order | the order of the matrix |
Definition at line 73 of file itkFEMItpackSparseMatrix.h.
References m_N.
|
private |
unfinalize matrix
Definition at line 199 of file itkFEMItpackSparseMatrix.cxx.
References m_A, m_IA, m_IWORK, m_JA, m_LEVEL, m_MatrixFinalized, m_MatrixInitialized, m_N, m_NOUT, m_NZ, and sbagn_().
|
friend |
friend class
Definition at line 177 of file itkFEMItpackSparseMatrix.h.
|
private |
nonzero entries in compressed row storage format
Definition at line 207 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), Get(), GetA(), Initialize(), ItpackSparseMatrix(), mult(), Set(), SetCompressedRow(), UnFinalize(), and ~ItpackSparseMatrix().
|
private |
row pointegerers used in compressed row storage format
Definition at line 201 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), Get(), itk::fem::LinearSystemWrapperItpack::GetColumnsOfNonZeroMatrixElementsInRow(), GetIA(), Initialize(), ItpackSparseMatrix(), mult(), Set(), SetCompressedRow(), UnFinalize(), and ~ItpackSparseMatrix().
|
private |
integer workspace used in matrix building
Definition at line 210 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), itk::fem::LinearSystemWrapperItpack::GetColumnsOfNonZeroMatrixElementsInRow(), Initialize(), ItpackSparseMatrix(), Set(), UnFinalize(), and ~ItpackSparseMatrix().
|
private |
column indices used in compressed row storage format
Definition at line 204 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), Get(), itk::fem::LinearSystemWrapperItpack::GetColumnsOfNonZeroMatrixElementsInRow(), GetJA(), Initialize(), ItpackSparseMatrix(), mult(), Set(), SetCompressedRow(), UnFinalize(), and ~ItpackSparseMatrix().
|
private |
flag indicating desired level of error reporting during matrix building m_LEVEL < 0 - no printing = 0 - fatal error messages written to m_NOUT > 0 - messages printed when repeat entries are encountered
Definition at line 230 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), ItpackSparseMatrix(), Set(), and UnFinalize().
|
private |
flag indicating whether the matrix representation has been finalized
Definition at line 189 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), Get(), GetA(), itk::fem::LinearSystemWrapperItpack::GetColumnsOfNonZeroMatrixElementsInRow(), GetIA(), GetJA(), Initialize(), ItpackSparseMatrix(), mult(), Set(), SetCompressedRow(), and UnFinalize().
|
private |
flag indicating variables have been initialized
Definition at line 192 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), Get(), GetA(), GetIA(), GetJA(), Initialize(), ItpackSparseMatrix(), Set(), SetCompressedRow(), and UnFinalize().
|
private |
flag indicating mode of matrix building for repeat entries m_MODE < 0 - current entry left as is = 0 - current entry reset > 0 - value is added to current entry
Definition at line 218 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), ItpackSparseMatrix(), and Set().
|
private |
Order of system
Definition at line 195 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), GetN(), GetOrder(), Initialize(), ItpackSparseMatrix(), mult(), Set(), SetOrder(), and UnFinalize().
|
private |
unit number that error messages are written to during matrix building
Definition at line 221 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), ItpackSparseMatrix(), Set(), and UnFinalize().
|
private |
Maximum number of non-zero elements in master stiffness matrix
Definition at line 198 of file itkFEMItpackSparseMatrix.h.
Referenced by Add(), Clear(), Finalize(), GetMaxNonZeroValues(), Initialize(), ItpackSparseMatrix(), Set(), SetMaxNonZeroValues(), and UnFinalize().