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

- Main Page
- Namespaces
- Classes
- Files
- Directories

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes | Properties | Private Attributes

# IG::Num::LinearSolverBase Class Reference

Inheritance diagram for IG::Num::LinearSolverBase:
[legend]
Collaboration diagram for IG::Num::LinearSolverBase:
[legend]

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:

  righthandSides | Matrix 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:

  righthandSides | Vector 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:

  B | A Matrix with as many rows as A and any number of columns (right-hand sides).
  X | Matrix where results are stored (one column for each right-hand side).

Exceptions:

  System.ArgumentException | Matrix row dimensions must agree.
  System.SystemException | Matrix 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:

  B | A 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.ArgumentException | Matrix row dimensions must agree.
  System.SystemException | Matrix 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:

  b | Vector of right-hand sides.
  x | Vector 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:

  b | Right-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]`

Matrix_MathNetNumerics IG::Num::LinearSolverBase::_matrixRighthandSides_MathNetNumerics`[protected]`

VectorBase_MathNetNumerics IG::Num::LinearSolverBase::_vectorSolution_MathNetNumerics`[protected]`

Vector_MathNetNumerics IG::Num::LinearSolverBase::_vectorRighthandSides_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:

- MatrixDecompositions.cs

All Classes Namespaces Files Functions Variables Enumerations Properties Events