Enumeration Types

This section lists the enumeration types defined in the Extreme Optimization Numerical Libraries for .NET.

AlgorithmStatus

Enumerates the possible result codes for classes that inherit from ManagedIterativeAlgorithm<T> class.

Member Name

Description

NoResult

The algorithm has not been executed.

Busy

The algorithm has not yet ended.

Converged

The algorithm has converged.

ConvergedToFalseSolution

The algorithm converged, but the result is not a solution of the problem.

IterationLimitExceeded

The maximum number of iterations was exceeded.

EvaluationLimitExceeded

The maximum number of function evaluations was exceeded.

RoundOffError

Round-off prevented the algorithm from achieving a result within the desired tolerance.

BadFunction

A badly behaved function prevented the algorithm from achieving a result within the desired tolerance.

Divergent

the algorithm diverges.

ConvergenceCriterion

Enumerates possible values for the ConvergenceCriterion property of classes that inherit from the IterativeAlgorithm class or the ConvergenceTest<T> class.

Member Name

Description

WithinAbsoluteTolerance

The result should be within the tolerance specified by the AbsoluteTolerance property.

WithinRelativeTolerance

The result should be within the tolerance specified by the RelativeTolerance property.

WithinAnyTolerance

The result should be within either of the tolerances specified by the AbsoluteTolerance and RelativeTolerance properties.

NumberOfIterations

Convergence should be expected at the specified by the MaxIterations property. The estimated error is ignored.

ConvergenceTestQuantifier

Enumerates the possible ways tests in a ConvergenceTestCollection<T> are combined.

Member Name

Description

Any

The convergence test succeeds if any of the tests in the collection succeeds.

All

The convergence test succeeds if all of the tests in the collection succeed.

DifferencesDirection

Enumerates the possible values that specify the type of divided differences to be used in numerical differentiation.

Member Name

Description

Backward

Only function values at the target point and to the left of the target point are used.

Central

Function values at the target point and on both sides of the target point are used.

Forward

Only function values at the target point and to the right of the target point are used.

CloningMethod

Enumerates the methods that can be used to clone a Vector<T> or Matrix<T>.

Member Name

Description

Complete

Makes an exact clone of the object.

NonzeroElementsWriteable

Makes a copy of the object such that all non-zero elements are writable.

AllElementsWriteable

Makes a copy of the object such that all elements are writable.

ConjugateGradientMethod

Enumerates the variants of the conjugate gradient method. This enumeration is used by the Method property of the ConjugateGradientOptimizer class to specify the formula that is used to construct the next conjugate direction.

Member Name

Description

FletcherReeves

The method of Fletcher and Reeves

PolakRibiere

The method of Polak and Ribiere

PositivePolakRibiere

The method of Polak and Ribiere with positive coefficient.

DimensionType

Enumerates the possible values for the type of dimension in a DimensionMismatchException.

Member Name

Description

Unknown

The mismatched dimension is unknown.

Row

The number of rows of a Matrix<T> is mismatched.

Column

The number of columns of a Matrix<T> is mismatched.

Length

The length of a Vector<T> is mismatched.

ExtremumType

Enumerates the possible values for the type of extremum an optimizer is to look for.

Member Name

Description

Minimum

A minimum of the objective function is requested. (This is the default.)

Maximum

A maximum of the objective function is requested.

LeastSquaresSolutionMethod

Enumerates the possible methods for solving a least squares problem.

Member Name

Description

NormalEquations

Use the normal equations computed from the input.

QRDecomposition

Use a QR decomposition of the input matrix. This is the default.

SingularValueDecomposition

Use a singular value decomposition. This is the most stable and reliable method, but also the slowest.

LinearLeastSquaresMethod

Enumerates the possible methods for solving a least squares problem. This enumeration is used by the LinearCurveFitter class to specify how the least squares solution is to be calculated.

Member Name

Description

NormalEquations

Use the normal equations computed from the input.

QRDecomposition

Use a QR decomposition of the input matrix. This is the most stable method.

SingularValueDecomposition

Use a singular value decomposition. This is the most stable and reliable method, but also the slowest.

MatrixDiagonal

Represents the possible values that specify whether or not a Matrix<T> has 1's on its diagonal.

This enumeration corresponds to the DIAG parameter in the BLAS and LAPACK routines, and the CBLAS_DIAG enum in the CBLAS interface definition.

Member Name

Description

NonUnitDiagonal

The matrix is not unit-diagonal.

UnitDiagonal

The matrix is unit-diagonal.

MatrixElementOrder

Represents the possible values for the order in which elements of a Matrix<T> are stored. The matrix elements must be contiguous in the storage array in the direction specified by this value.

This enumeration corresponds to the CBLAS_ORDER enum in the CBLAS interface definition.

Member Name

Description

RowMajor

The elements are stored in row major order. Elements in the same row are stored in one contiguous block.

ColumnMajor

The elements are stored in column major order. Elements in the same column are stored in one contiguous block.

NotApplicable

The element order is meaningless for the type of matrix.

MatrixOperationSide

Represents the possible values that specify on which side of the operator a Matrix<T> argument is to be multiplied. The value always refers to the side relative to the current instance.

This enumeration corresponds to the SIDE parameter in the BLAS and LAPACK routines, and the CBLAS_SIDE enum in the CBLAS interface definition.

Member Name

Description

Left

The Matrix<T> is to be multiplied on the left side.

Right

The Matrix<T> is to be multiplied on the right side.

MatrixTriangle

Represents the possible values specifying a triangular part of a matrix. It is used to specify whether a triangular matrix is upper or lower triangular, and to specify which part of a symmetric or Hermitian matrix is stored.

This enumeration corresponds to the UPLO parameter in the BLAS and LAPACK routines, and the CBLAS_UPLO enum in the CBLAS interface definition.

Member Name

Description

Upper

The matrix is upper triangular, or the matrix elements are stored in the upper triangular portion of the storage array.

Lower

The matrix is lower triangular, or the matrix elements are stored in the lower triangular portion of the storage array.

Both

Both upper and lower diagonal elements are present.

QuasiNewtonMethod

Enumerates the variants of the quasi-Newton method.

Member Name

Description

Bfgs

The Broyden-Fletcher-Goldfard-Shanno method. (This is the default.)

Dfp

The Davidon-Fletcher-Powell method.

SingularValueDecompositionFactors

Represents the possible values specifying which factors of a SingularValueDecomposition<T> are to be computed.

Member Name

Description

SingularValues

The singular values are required. This is always included.

LeftSingularVectors

The left singular vectors are required.

RightSingularVectors

The right singular vectors are required.

All

The singular values as well as the left and right singular vectors are required.

TransposeOperation

Represents the possible values of an operation to be performed on a Matrix<T> before it is multiplied.

This enumeration corresponds to the TRANS parameters in the BLAS and LAPACK routines, and the CBLAS_TRANSPOSE enum in the CBLAS interface definition.

Member Name

Description

None

No operation is performed. The matrix is multiplied 'as is.'

Transpose

The transpose of the matrix is multiplied.

ConjugateTranspose

The conjugate transpose of the matrix is multiplied. For real matrices, this is the same as Transpose.

Conjugate

The conjugate of the matrix is multiplied. For real matrices, this is the same as None.

VectorConvergenceErrorMeasure

Enumerates the ways to measure the error in a VectorConvergenceTest<T>.

Member Name

Description

Norm

Use the norm of the error vector as the measure.

Elementwise

Calculate the errors on individual elements.

VectorConvergenceNorm

Enumerates the possible norms to be used in a VectorConvergenceTest<T>.

Member Name

Description

EuclideanNorm

Use the Euclidean (two-norm).

Maximum

Use the maximum absolute value (infinity norm).

SumOfAbsoluteValues

Use the sum of the absolute values (one norm).