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);
virtual void SwapVectors(unsigned int vectorIndex1, unsigned int vectorIndex2)
LinearSystemWrapperDenseVNL()
virtual Float GetMatrixValue(unsigned int i, unsigned int j, unsigned int matrixIndex) const
vnl_matrix< Float > MatrixRepresentation
virtual void AddVectorValue(unsigned int i, Float value, unsigned int vectorIndex)
LinearSystemWrapper SuperClass
virtual void AddMatrixValue(unsigned int i, unsigned int j, Float value, unsigned int matrixIndex)
virtual void ScaleMatrix(Float scale, unsigned int matrixIndex)
LinearSystemWrapper class that uses VNL numeric library functions to define a sparse linear system of...
virtual bool IsMatrixInitialized(unsigned int matrixIndex)
virtual void ScaleVector(Float scale, unsigned int vectorIndex)
virtual void MultiplyMatrixVector(unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int vectorIndex)
virtual Float GetSolutionValue(unsigned int i, unsigned int solutionIndex) const
virtual void SetMaximumNonZeroValuesInMatrix(unsigned int, unsigned int)
virtual void SwapMatrices(unsigned int matrixIndex1, unsigned int matrixIndex2)
virtual bool IsVectorInitialized(unsigned int vectorIndex)
virtual void InitializeSolution(unsigned int solutionIndex)
virtual void CopyVector2Solution(unsigned int vectorIndex, unsigned int solutionIndex)
LinearSystemWrapper::Float Float
virtual void CopySolution2Vector(unsigned solutionIndex, unsigned int vectorIndex)
std::vector< MatrixRepresentation * > MatrixHolder
virtual void DestroyVector(unsigned int vectorIndex)
virtual void MultiplyMatrixMatrix(unsigned int resultMatrixIndex, unsigned int leftMatrixIndex, unsigned int rightMatrixIndex)
virtual void SetSolutionValue(unsigned int i, Float value, unsigned int solutionIndex)
virtual void SwapSolutions(unsigned int solutionIndex1, unsigned int solutionIndex2)
virtual void DestroyMatrix(unsigned int matrixIndex)
virtual void InitializeVector(unsigned int vectorIndex)
Defines all functions required by Solver class to allocate, assemble and solve a linear system of equ...
virtual void InitializeMatrix(unsigned int matrixIndex)
virtual Float GetVectorValue(unsigned int i, unsigned int vectorIndex) const
virtual bool IsSolutionInitialized(unsigned int solutionIndex)
std::vector< vnl_vector< Float > * > * m_Vectors
virtual void SetVectorValue(unsigned int i, Float value, unsigned int vectorIndex)
MatrixHolder * m_Matrices
virtual void ScaleSolution(Float scale, unsigned int solutionIndex)
virtual ~LinearSystemWrapperDenseVNL()
virtual void AddSolutionValue(unsigned int i, Float value, unsigned int solutionIndex)
virtual void SetMatrixValue(unsigned int i, unsigned int j, Float value, unsigned int matrixIndex)
std::vector< vnl_vector< Float > * > * m_Solutions
virtual void DestroySolution(unsigned int solutionIndex)