19 #ifndef __itkFEMLinearSystemWrapperDenseVNL_h
20 #define __itkFEMLinearSystemWrapperDenseVNL_h
22 #include "vnl/vnl_matrix.h"
23 #include "vnl/vnl_vector.h"
24 #include "vnl/algo/vnl_svd.h"
85 unsigned int matrixIndex)
const
87 return ( *( ( *
m_Matrices )[matrixIndex] ) )(i, j);
90 unsigned int matrixIndex)
92 ( *( ( *m_Matrices )[matrixIndex] ) )(i, j) = value;
95 unsigned int matrixIndex)
97 ( *( ( *m_Matrices )[matrixIndex] ) )(i, j) += value;
100 unsigned int vectorIndex)
const
102 return ( *( ( *
m_Vectors )[vectorIndex] ) )[i];
105 unsigned int vectorIndex)
107 ( *( ( *m_Vectors )[vectorIndex] ) )(i) = value;
110 unsigned int vectorIndex)
112 ( *( ( *m_Vectors )[vectorIndex] ) )(i) += value;
117 unsigned int solutionIndex)
119 ( *( ( *m_Solutions )[solutionIndex] ) )(i) = value;
122 unsigned int solutionIndex)
124 ( *( ( *m_Solutions )[solutionIndex] ) )(i) += value;
126 virtual void Solve(
void);
135 virtual void SwapMatrices(
unsigned int matrixIndex1,
unsigned int matrixIndex2);
137 virtual void SwapVectors(
unsigned int vectorIndex1,
unsigned int vectorIndex2);
139 virtual void SwapSolutions(
unsigned int solutionIndex1,
unsigned int solutionIndex2);
146 unsigned int rightMatrixIndex);
148 virtual void MultiplyMatrixVector(
unsigned int resultVectorIndex,
unsigned int matrixIndex,
unsigned int vectorIndex);