-
Notifications
You must be signed in to change notification settings - Fork 9
MGroup.LinearAlgebra.Iterative.Termination
A MGroup.LinearAlgebra.Iterative.Termination.IMaxIterationsProvider implementation that will use a fixed number of iterations, regardless of the matrix order. Authors: Serafeim Bakalakos
public class MGroup.LinearAlgebra.Iterative.Termination.FixedMaxIterationsProvider
: IMaxIterationsProviderMethods
| Type | Name | Summary |
|---|---|---|
Int32 |
GetMaxIterationsForMatrix(ILinearTransformation matrix) |
See MGroup.LinearAlgebra.Iterative.Termination.IMaxIterationsProvider.GetMaxIterationsForMatrix(MGroup.LinearAlgebra.Iterative.ILinearTransformation). |
Determines the maximum number of iterations that will be run by an iterative algorithm. Authors: Serafeim Bakalakos
public interface MGroup.LinearAlgebra.Iterative.Termination.IMaxIterationsProviderMethods
| Type | Name | Summary |
|---|---|---|
Int32 |
GetMaxIterationsForMatrix(ILinearTransformation matrix) |
Returns the max number of iterations appropriate for the specified `` of the linear system. |
Checks if the residual vector has reached the required tolerance. It may also correct the residual vector and its dot product with the vector specified by the iterative algorithm that uses this MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergence, in order to avoid numerical complications. The correct residual vector is calculated as r = b - A * x. Authors: Serafeim Bakalakos
public interface MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergenceMethods
| Type | Name | Summary |
|---|---|---|
Boolean |
HasConverged(IVectorView solutionVector, IVector residualVector, Double& residualDotProduct, Boolean isResidualCorrected, Func<IVectorView, Double> residualDotCalculation) |
Checks if the residual vector has reached the required tolerance. It may also correct the residual vector and its dot product with the vector specified by the iterative algorithm. |
void |
Initialize(ILinearTransformation matrix, IVectorView rhsVector, Double residualTolerance, Double initialResidualDotProduct) |
Initializes the internal state of this MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergence instance. Has to be called before each linear system solution. |
A MGroup.LinearAlgebra.Iterative.Termination.IMaxIterationsProvider implementation that will use a percentage of the matrix order as the max number of iterations. Authors: Serafeim Bakalakos
public class MGroup.LinearAlgebra.Iterative.Termination.PercentageMaxIterationsProvider
: IMaxIterationsProviderMethods
| Type | Name | Summary |
|---|---|---|
Int32 |
GetMaxIterationsForMatrix(ILinearTransformation matrix) |
See MGroup.LinearAlgebra.Iterative.Termination.IMaxIterationsProvider.GetMaxIterationsForMatrix(MGroup.LinearAlgebra.Iterative.ILinearTransformation)
|
Checks if the residual vector has reached the required tolerance, without performing corrections. Authors: Serafeim Bakalakos
public class MGroup.LinearAlgebra.Iterative.Termination.SimpleConvergence
: IResidualConvergenceMethods
| Type | Name | Summary |
|---|---|---|
Boolean |
HasConverged(IVectorView solutionVector, IVector residualVector, Double& residualDotProduct, Boolean isResidualCorrected, Func<IVectorView, Double> residualDotCalculation) |
See MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergence.HasConverged(MGroup.LinearAlgebra.Vectors.IVectorView,MGroup.LinearAlgebra.Vectors.IVector,System.Double@,System.Boolean,System.Func{MGroup.LinearAlgebra.Vectors.IVectorView,System.Double}). |
void |
Initialize(ILinearTransformation matrix, IVectorView rhsVector, Double residualTolerance, Double initialResidualDotProduct) |
See MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergence.Initialize(MGroup.LinearAlgebra.Iterative.ILinearTransformation,MGroup.LinearAlgebra.Vectors.IVectorView,System.Double,System.Double). |
Checks if the residual vector has reached the required tolerance. In addition corrects the residual vector, in order to avoid premature convergence, if the tolerance is close to the limits of the machine's floating point precision, as described in section B1 of "An Introduction to the Conjugate Gradient Method Without the Agonizing Pain", Jonathan Richard Shewchuk, 1994. Authors: Serafeim Bakalakos
public class MGroup.LinearAlgebra.Iterative.Termination.SmallToleranceConvergence
: IResidualConvergenceMethods
| Type | Name | Summary |
|---|---|---|
Boolean |
HasConverged(IVectorView solutionVector, IVector residualVector, Double& residualDotProduct, Boolean isResidualCorrected, Func<IVectorView, Double> residualDotCalculation) |
See MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergence.HasConverged(MGroup.LinearAlgebra.Vectors.IVectorView,MGroup.LinearAlgebra.Vectors.IVector,System.Double@,System.Boolean,System.Func{MGroup.LinearAlgebra.Vectors.IVectorView,System.Double}). |
void |
Initialize(ILinearTransformation matrix, IVectorView rhsVector, Double residualTolerance, Double initialResidualDotProduct) |
See MGroup.LinearAlgebra.Iterative.Termination.IResidualConvergence.Initialize(MGroup.LinearAlgebra.Iterative.ILinearTransformation,MGroup.LinearAlgebra.Vectors.IVectorView,System.Double,System.Double). |