19 #ifndef __itkFEMLinearSystemWrapperVNL_h
20 #define __itkFEMLinearSystemWrapperVNL_h
22 #include "vnl/vnl_sparse_matrix.h"
23 #include "vnl/vnl_vector.h"
24 #include <vnl/vnl_sparse_matrix_linear_system.h>
25 #include <vnl/algo/vnl_lsqr.h>
86 unsigned int matrixIndex)
const
88 return ( *( ( *
m_Matrices )[matrixIndex] ) )(i, j);
91 unsigned int matrixIndex)
93 ( *( ( *m_Matrices )[matrixIndex] ) )(i, j) = value;
96 unsigned int matrixIndex)
98 ( *( ( *m_Matrices )[matrixIndex] ) )(i, j) += value;
101 unsigned int vectorIndex)
const
103 return ( *( ( *
m_Vectors )[vectorIndex] ) )[i];
106 unsigned int vectorIndex)
108 ( *( ( *m_Vectors )[vectorIndex] ) )(i) = value;
111 unsigned int vectorIndex)
113 ( *( ( *m_Vectors )[vectorIndex] ) )(i) += value;
118 unsigned int solutionIndex)
120 ( *( ( *m_Solutions )[solutionIndex] ) )(i) = value;
123 unsigned int solutionIndex)
125 ( *( ( *m_Solutions )[solutionIndex] ) )(i) += value;
127 virtual void Solve(
void);
132 virtual void SwapMatrices(
unsigned int matrixIndex1,
unsigned int matrixIndex2);
134 virtual void SwapVectors(
unsigned int vectorIndex1,
unsigned int vectorIndex2);
136 virtual void SwapSolutions(
unsigned int solutionIndex1,
unsigned int solutionIndex2);
143 unsigned int rightMatrixIndex);
145 virtual void MultiplyMatrixVector(
unsigned int resultVectorIndex,
unsigned int matrixIndex,
unsigned int vectorIndex);