BlockJacobiPreconditioner<T> Constructor

Definition

Namespace: Numerics.NET.LinearAlgebra.IterativeSolvers.Preconditioners
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0

Overload List

BlockJacobiPreconditioner<T>(Matrix<T>, Int32)Constructs a block Jacobi preconditioner with uniformly sized consecutive blocks.
BlockJacobiPreconditioner<T>(Matrix<T>, Int32[])Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options.
BlockJacobiPreconditioner<T>(Matrix<T>, Int32[], T, T)Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options.

BlockJacobiPreconditioner<T>(Matrix<T>, Int32)

Constructs a block Jacobi preconditioner with uniformly sized consecutive blocks.
C#
public BlockJacobiPreconditioner(
	Matrix<T> matrix,
	int blockSize
)

Parameters

matrix  Matrix<T>
The square matrix to precondition.
blockSize  Int32
A positive block size. The final block may be smaller.

Remarks

Uses a relative pivot tolerance of 100 times scalar machine epsilon and no diagonal shift.

Exceptions

ArgumentNullExceptionmatrix is null.
ArgumentOutOfRangeExceptionblockSize is not positive.
DimensionMismatchExceptionThe matrix is not square.
ArgumentExceptionAn in-block coefficient/factor is nonfinite or the partition requires excessive storage.
MatrixSingularExceptionA block pivot is zero or relatively too small.

BlockJacobiPreconditioner<T>(Matrix<T>, Int32[])

Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options.
C#
public BlockJacobiPreconditioner(
	Matrix<T> matrix,
	int[] blockBoundaries
)

Parameters

matrix  Matrix<T>
A non-null square matrix. Logical in-block coefficients must be finite; off-block entries are ignored.
blockBoundaries  Int32[]
Strictly increasing boundaries starting at zero and ending at matrix order. The empty matrix uses the single boundary [0]. The array is copied.

Remarks

Uses a relative pivot tolerance of 100 times scalar machine epsilon and no diagonal shift.

Exceptions

ArgumentNullExceptionThe matrix or partition is null.
DimensionMismatchExceptionThe matrix is not square.
ArgumentOutOfRangeExceptionA tuning value is outside its valid range.
ArgumentExceptionThe partition is invalid or requires excessive storage, or an in-block coefficient/factor is nonfinite.
MatrixSingularExceptionA block pivot is zero or relatively too small.

BlockJacobiPreconditioner<T>(Matrix<T>, Int32[], T, T)

Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options.
C#
public BlockJacobiPreconditioner(
	Matrix<T> matrix,
	int[] blockBoundaries,
	T relativePivotTolerance,
	T relativeDiagonalShift
)

Parameters

matrix  Matrix<T>
A non-null square matrix. Logical in-block coefficients must be finite; off-block entries are ignored.
blockBoundaries  Int32[]
Strictly increasing boundaries starting at zero and ending at matrix order. The empty matrix uses the single boundary [0]. The array is copied.
relativePivotTolerance  T
A finite real value in [0, 1). Each pivot magnitude divided by the original shifted maximum magnitude of its selected row must exceed this value.
relativeDiagonalShift  T
A finite nonnegative real value. Adds this value times each original within-block row maximum magnitude to that diagonal, using unit scale for an empty block row. Only the preconditioner is shifted.

Exceptions

ArgumentNullExceptionThe matrix or partition is null.
DimensionMismatchExceptionThe matrix is not square.
ArgumentOutOfRangeExceptionA tuning value is outside its valid range.
ArgumentExceptionThe partition is invalid or requires excessive storage, or an in-block coefficient/factor is nonfinite.
MatrixSingularExceptionA block pivot is zero or relatively too small.

See Also