IGLib  1.7.2
The IGLib base library for development of numerical, technical and business applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
IG.Num.LinearSolverBase Class Reference
+ Inheritance diagram for IG.Num.LinearSolverBase:
+ Collaboration diagram for IG.Num.LinearSolverBase:

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)
inlineprotectedvirtual

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.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)
inlineprotectedvirtual

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.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 
)
inlinevirtual

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.

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
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 
)
inlinevirtual

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.

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