IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.

IG::Num::LinearSolverBase Class Reference

Inheritance diagram for IG::Num::LinearSolverBase:
Collaboration diagram for IG::Num::LinearSolverBase:

List of all members.

Public Member Functions

virtual void Solve (IMatrix B, ref IMatrix X)
 Solves A*X = B (a set of linear systems of equations), where B is the matrix whose colums are right-hand sides of equations to be solved. Solutions are stored to the specified matrix. Decomposed matrix of coefficients A is represented by the current object.
IMatrix Solve (IMatrix B)
 Solves A*X = B (a set of linear systems of equations), where B is the matrix whose colums are right-hand sides of equations to be solved, and returns a matrix whose columns are solutions of the specified systems of equations. Decomposed matrix of coefficients A is represented by the current object.
virtual void Solve (IVector b, ref IVector x)
 Solves a system of linear equations A*x=b, and stores the solution in the specified vector. Decomposed matrix of coefficients A is represented by the current object.
IVector Solve (IVector b)
 Solves a system of linear equations A*x=b, and returns the solution. Decomposed matrix of coefficients A is represented by the current object.

Protected Member Functions

virtual MatrixBase_MathNetNumerics SolveMathNetNumerics (IMatrix righthandSides)
 Solves systems of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form.
virtual VectorBase_MathNetNumerics SolveMathNetNumerics (IVector rightHandSides)
 Solves the system of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form.

Protected Attributes

internal int _rowCount = 0
MatrixBase_MathNetNumerics _matrixSolution_MathNetNumerics
Matrix_MathNetNumerics _matrixRighthandSides_MathNetNumerics
VectorBase_MathNetNumerics _vectorSolution_MathNetNumerics
Vector_MathNetNumerics _vectorRighthandSides_MathNetNumerics

Properties

object Lock [get]
 This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock.

Private Attributes

object _mainLock = new object()
internal int _columnCount = 0

Member Function Documentation

virtual MatrixBase_MathNetNumerics IG::Num::LinearSolverBase::SolveMathNetNumerics ( IMatrix  righthandSides) [inline, protected, virtual]

Solves systems of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form.

Parameters:
righthandSidesMatrix that contains right-hand sides of the linear equations to be solved as its columns.
Returns:
The Math.Net Numerics matrix whose columns contains solutions to the systems of linear equations whose right-hand sides are specified by yhe righthandSides parameter.

Reimplemented in IG::Num::LUDecomposition, IG::Num::QRDecomposition, IG::Num::CholeskyDecomposition, IG::Num::EigenValueDecomposition, and IG::Num::SingularValueDecomposition.

virtual VectorBase_MathNetNumerics IG::Num::LinearSolverBase::SolveMathNetNumerics ( IVector  rightHandSides) [inline, protected, virtual]

Solves the system of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form.

Parameters:
righthandSidesVector of right-hand sides of the linear equations to be solved.
Returns:
The Math.Net Numerics vector whose columns contains solutions to the systems of linear equations whose right-hand sides are specified by yhe righthandSides parameter.

Reimplemented in IG::Num::LUDecomposition, IG::Num::QRDecomposition, IG::Num::CholeskyDecomposition, IG::Num::EigenValueDecomposition, and IG::Num::SingularValueDecomposition.

virtual void IG::Num::LinearSolverBase::Solve ( IMatrix  B,
ref IMatrix  X 
) [inline, virtual]

Solves A*X = B (a set of linear systems of equations), where B is the matrix whose colums are right-hand sides of equations to be solved. Solutions are stored to the specified matrix. Decomposed matrix of coefficients A is represented by the current object.

Parameters:
BA Matrix with as many rows as A and any number of columns (right-hand sides).
XMatrix where results are stored (one column for each right-hand side).
Exceptions:
System.ArgumentExceptionMatrix row dimensions must agree.
System.SystemExceptionMatrix is singular.
IMatrix IG::Num::LinearSolverBase::Solve ( IMatrix  B) [inline]

Solves A*X = B (a set of linear systems of equations), where B is the matrix whose colums are right-hand sides of equations to be solved, and returns a matrix whose columns are solutions of the specified systems of equations. Decomposed matrix of coefficients A is represented by the current object.

Parameters:
BA Matrix with as many rows as A and any number of columns (right-hand sides).
Returns:
X so that L*U*X = B(piv,:)
Exceptions:
System.ArgumentExceptionMatrix row dimensions must agree.
System.SystemExceptionMatrix is singular.
virtual void IG::Num::LinearSolverBase::Solve ( IVector  b,
ref IVector  x 
) [inline, virtual]

Solves a system of linear equations A*x=b, and stores the solution in the specified vector. Decomposed matrix of coefficients A is represented by the current object.

Parameters:
bVector of right-hand sides.
xVector where solution is stored.
IVector IG::Num::LinearSolverBase::Solve ( IVector  b) [inline]

Solves a system of linear equations A*x=b, and returns the solution. Decomposed matrix of coefficients A is represented by the current object.

Parameters:
bRight-hand side vector.
Returns:
Solution of the System such that L*U*x=s(piv,:).

Member Data Documentation

object IG::Num::LinearSolverBase::_mainLock = new object() [private]
internal int IG::Num::LinearSolverBase::_rowCount = 0 [protected]
internal int IG::Num::LinearSolverBase::_columnCount = 0 [private]
MatrixBase_MathNetNumerics IG::Num::LinearSolverBase::_matrixSolution_MathNetNumerics [protected]
VectorBase_MathNetNumerics IG::Num::LinearSolverBase::_vectorSolution_MathNetNumerics [protected]

Property Documentation

object IG::Num::LinearSolverBase::Lock [get]

This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties Events