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

- Main Page
- Namespaces
- Classes
- Files

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Public Member Functions | Protected Member Functions | Protected Attributes | Properties | Private Attributes | List of all members
IG.Num.LinearSolverBase Class Reference
Inheritance diagram for IG.Num.LinearSolverBase:
[legend]
Collaboration diagram for IG.Num.LinearSolverBase:
[legend]

## 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. More...
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. More...
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. More...
IVector | Solve (IVector b)
| Solves a system of linear equations A*x=b, and returns the solution. More...

## 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. More...
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. More...

## Protected Attributes
MatrixBase_MathNetNumerics | _matrixSolution_MathNetNumerics
Matrix_MathNetNumerics | _matrixRighthandSides_MathNetNumerics
VectorBase_MathNetNumerics | _vectorSolution_MathNetNumerics
Vector_MathNetNumerics | _vectorRighthandSides_MathNetNumerics
IVector | auxB = null
IVector | auxX = null

## 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. More...

## Private Attributes
object | _mainLock = new object()
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.SingularValueDecomposition, IG.Num.EigenValueDecomposition, IG.Num.CholeskyDecomposition, IG.Num.QRDecomposition, and IG.Num.LUDecomposition.

References IG.Num.Matrix.Copy().

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.SingularValueDecomposition, IG.Num.EigenValueDecomposition, IG.Num.CholeskyDecomposition, IG.Num.QRDecomposition, and IG.Num.LUDecomposition.

References IG.Num.VectorBase.Copy().

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.

References IG.Num.MatrixBase.Resize().

Referenced by IG.Num.AffineTransformationSquare.CalculateInverseTransformationMatrix(), IG.Num.AffineTransformationSquare.CalculateTransformationMatrix(), IG.Num.SpeedTestCpu.TestComputationalTimesCholesky_IGLib(), IG.Num.SpeedTestCpu.TestComputationalTimesLU_IGLib(), and IG.Num.SpeedTestCpu.TestComputationalTimesQR_IGLib().

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.

References IG.Num.VectorBase.Copy().

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

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

IVector IG.Num.LinearSolverBase.auxB = null
| protected

IVector IG.Num.LinearSolverBase.auxX = null
| 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:

- igbase/numeric/MatrixDecompositions.cs