DecompositionOperations<TReal, TComplex>.BandCholeskyDecompose Method

Definition

Namespace: Numerics.NET.LinearAlgebra.Implementation
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.3

Overload List

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Array2D<TReal>, Int32)

Computes the Cholesky factorization of a real symmetric positive definite band matrix A.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Array2D<TComplex>, Int32)

Computes the Cholesky factorization of a complex Hermitian positive definite band matrix A.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span2D<TReal>, Int32)

Computes the Cholesky factorization of a real symmetric positive definite band matrix A.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span2D<TComplex>, Int32)

Computes the Cholesky factorization of a complex Hermitian positive definite band matrix A.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span<TReal>, Int32, Int32)

Computes the Cholesky factorization of a real symmetric positive definite band matrix A.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span<TComplex>, Int32, Int32)

Computes the Cholesky factorization of a complex Hermitian positive definite band matrix A.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Array2D<TReal>, Int32)

Computes the Cholesky factorization of a real symmetric positive definite band matrix A.

C#
public void BandCholeskyDecompose(
	MatrixTriangle storedTriangle,
	int n,
	int kd,
	Array2D<TReal> ab,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  Upper triangle of A is stored;
            = 'L':  Lower triangle of A is stored.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals of the matrix A if UPLO = 'U',
            or the number of subdiagonals if UPLO = 'L'.  KD >= 0.
            
ab  Array2D<TReal>
            AB is TReal array, dimension (LDAB,N)
            On entry, the upper or lower triangle of the symmetric band
            matrix A, stored in the first KD+1 rows of the array.  The
            j-th column of A is stored in the j-th column of the array AB
            as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            On exit, if INFO = 0, the triangular factor U or L from the
            Cholesky factorization A = UT*U or A = L*LT of the band
            matrix A, in the same storage format as A.
            
            The leading dimension of the array AB.  LDAB >= KD+1.
            
info  Int32
            = 0:  successful exit
            < 0:  if INFO = -i, the i-th argument had an illegal value
            > 0:  if INFO = i, the leading minor of order i is not
                  positive definite, and the factorization could not be
                  completed.
            

Remarks

            The factorization has the form
               A = UT * U,  if UPLO = 'U', or
               A = L  * LT,  if UPLO = 'L',
            where U is an upper triangular matrix and L is lower triangular.
            

Further Details:

            The band storage scheme is illustrated by the following example, when
            N = 6, KD = 2, and UPLO = 'U':
            On entry:                       On exit:
                *    *   a13  a24  a35  a46      *    *   u13  u24  u35  u46
                *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
               a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
            Similarly, if UPLO = 'L' the format of A is as follows:
            On entry:                       On exit:
               a11  a22  a33  a44  a55  a66     l11  l22  l33  l44  l55  l66
               a21  a32  a43  a54  a65   *      l21  l32  l43  l54  l65   *
               a31  a42  a53  a64   *    *      l31  l42  l53  l64   *    *
            Array elements marked * are not used by the routine.
            

This method corresponds to the LAPACK routine ?PBTRF.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Array2D<TComplex>, Int32)

Computes the Cholesky factorization of a complex Hermitian positive definite band matrix A.

C#
public void BandCholeskyDecompose(
	MatrixTriangle uplo,
	int n,
	int kd,
	Array2D<TComplex> ab,
	out int info
)

Parameters

uplo  MatrixTriangle
            = 'U':  Upper triangle of A is stored;
            = 'L':  Lower triangle of A is stored.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals of the matrix A if UPLO = 'U',
            or the number of subdiagonals if UPLO = 'L'.  KD >= 0.
            
ab  Array2D<TComplex>
            AB is TComplex array, dimension (LDAB,N)
            On entry, the upper or lower triangle of the Hermitian band
            matrix A, stored in the first KD+1 rows of the array.  The
            j-th column of A is stored in the j-th column of the array AB
            as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            On exit, if INFO = 0, the triangular factor U or L from the
            Cholesky factorization A = UH*U or A = L*LH of the band
            matrix A, in the same storage format as A.
            
            The leading dimension of the array AB.  LDAB >= KD+1.
            
info  Int32
            = 0:  successful exit
            < 0:  if INFO = -i, the i-th argument had an illegal value
            > 0:  if INFO = i, the leading minor of order i is not
                  positive definite, and the factorization could not be
                  completed.
            

Remarks

            The factorization has the form
               A = UH * U,  if UPLO = 'U', or
               A = L  * LH,  if UPLO = 'L',
            where U is an upper triangular matrix and L is lower triangular.
            

Further Details:

            The band storage scheme is illustrated by the following example, when
            N = 6, KD = 2, and UPLO = 'U':
            On entry:                       On exit:
                *    *   a13  a24  a35  a46      *    *   u13  u24  u35  u46
                *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
               a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
            Similarly, if UPLO = 'L' the format of A is as follows:
            On entry:                       On exit:
               a11  a22  a33  a44  a55  a66     l11  l22  l33  l44  l55  l66
               a21  a32  a43  a54  a65   *      l21  l32  l43  l54  l65   *
               a31  a42  a53  a64   *    *      l31  l42  l53  l64   *    *
            Array elements marked * are not used by the routine.
            

Contributors:

Peter Mayes and Giuseppe Radicati, IBM ECSEC, Rome, March 23, 1989

Authors: Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd.

Date: November 2011

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span2D<TReal>, Int32)

Computes the Cholesky factorization of a real symmetric positive definite band matrix A.

C#
public void BandCholeskyDecompose(
	MatrixTriangle storedTriangle,
	int n,
	int kd,
	Span2D<TReal> ab,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  Upper triangle of A is stored;
            = 'L':  Lower triangle of A is stored.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals of the matrix A if UPLO = 'U',
            or the number of subdiagonals if UPLO = 'L'.  KD >= 0.
            
ab  Span2D<TReal>
            AB is TReal array, dimension (LDAB,N)
            On entry, the upper or lower triangle of the symmetric band
            matrix A, stored in the first KD+1 rows of the array.  The
            j-th column of A is stored in the j-th column of the array AB
            as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            On exit, if INFO = 0, the triangular factor U or L from the
            Cholesky factorization A = UT*U or A = L*LT of the band
            matrix A, in the same storage format as A.
            
            The leading dimension of the array AB.  LDAB >= KD+1.
            
info  Int32
            = 0:  successful exit
            < 0:  if INFO = -i, the i-th argument had an illegal value
            > 0:  if INFO = i, the leading minor of order i is not
                  positive definite, and the factorization could not be
                  completed.
            

Remarks

            The factorization has the form
               A = UT * U,  if UPLO = 'U', or
               A = L  * LT,  if UPLO = 'L',
            where U is an upper triangular matrix and L is lower triangular.
            

Further Details:

            The band storage scheme is illustrated by the following example, when
            N = 6, KD = 2, and UPLO = 'U':
            On entry:                       On exit:
                *    *   a13  a24  a35  a46      *    *   u13  u24  u35  u46
                *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
               a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
            Similarly, if UPLO = 'L' the format of A is as follows:
            On entry:                       On exit:
               a11  a22  a33  a44  a55  a66     l11  l22  l33  l44  l55  l66
               a21  a32  a43  a54  a65   *      l21  l32  l43  l54  l65   *
               a31  a42  a53  a64   *    *      l31  l42  l53  l64   *    *
            Array elements marked * are not used by the routine.
            

This method corresponds to the LAPACK routine ?PBTRF.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span2D<TComplex>, Int32)

Computes the Cholesky factorization of a complex Hermitian positive definite band matrix A.

C#
public void BandCholeskyDecompose(
	MatrixTriangle uplo,
	int n,
	int kd,
	Span2D<TComplex> ab,
	out int info
)

Parameters

uplo  MatrixTriangle
            = 'U':  Upper triangle of A is stored;
            = 'L':  Lower triangle of A is stored.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals of the matrix A if UPLO = 'U',
            or the number of subdiagonals if UPLO = 'L'.  KD >= 0.
            
ab  Span2D<TComplex>
            AB is TComplex array, dimension (LDAB,N)
            On entry, the upper or lower triangle of the Hermitian band
            matrix A, stored in the first KD+1 rows of the array.  The
            j-th column of A is stored in the j-th column of the array AB
            as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            On exit, if INFO = 0, the triangular factor U or L from the
            Cholesky factorization A = UH*U or A = L*LH of the band
            matrix A, in the same storage format as A.
            
            The leading dimension of the array AB.  LDAB >= KD+1.
            
info  Int32
            = 0:  successful exit
            < 0:  if INFO = -i, the i-th argument had an illegal value
            > 0:  if INFO = i, the leading minor of order i is not
                  positive definite, and the factorization could not be
                  completed.
            

Remarks

            The factorization has the form
               A = UH * U,  if UPLO = 'U', or
               A = L  * LH,  if UPLO = 'L',
            where U is an upper triangular matrix and L is lower triangular.
            

Further Details:

            The band storage scheme is illustrated by the following example, when
            N = 6, KD = 2, and UPLO = 'U':
            On entry:                       On exit:
                *    *   a13  a24  a35  a46      *    *   u13  u24  u35  u46
                *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
               a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
            Similarly, if UPLO = 'L' the format of A is as follows:
            On entry:                       On exit:
               a11  a22  a33  a44  a55  a66     l11  l22  l33  l44  l55  l66
               a21  a32  a43  a54  a65   *      l21  l32  l43  l54  l65   *
               a31  a42  a53  a64   *    *      l31  l42  l53  l64   *    *
            Array elements marked * are not used by the routine.
            

Contributors:

Peter Mayes and Giuseppe Radicati, IBM ECSEC, Rome, March 23, 1989

Authors: Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd.

Date: November 2011

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span<TReal>, Int32, Int32)

Computes the Cholesky factorization of a real symmetric positive definite band matrix A.

C#
public abstract void BandCholeskyDecompose(
	MatrixTriangle storedTriangle,
	int n,
	int kd,
	Span<TReal> ab,
	int ldab,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  Upper triangle of A is stored;
            = 'L':  Lower triangle of A is stored.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals of the matrix A if UPLO = 'U',
            or the number of subdiagonals if UPLO = 'L'.  KD >= 0.
            
ab  Span<TReal>
            AB is TReal array, dimension (LDAB,N)
            On entry, the upper or lower triangle of the symmetric band
            matrix A, stored in the first KD+1 rows of the array.  The
            j-th column of A is stored in the j-th column of the array AB
            as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            On exit, if INFO = 0, the triangular factor U or L from the
            Cholesky factorization A = UT*U or A = L*LT of the band
            matrix A, in the same storage format as A.
            
ldab  Int32
            The leading dimension of the array AB.  LDAB >= KD+1.
            
info  Int32
            = 0:  successful exit
            < 0:  if INFO = -i, the i-th argument had an illegal value
            > 0:  if INFO = i, the leading minor of order i is not
                  positive definite, and the factorization could not be
                  completed.
            

Remarks

            The factorization has the form
               A = UT * U,  if UPLO = 'U', or
               A = L  * LT,  if UPLO = 'L',
            where U is an upper triangular matrix and L is lower triangular.
            

Further Details:

            The band storage scheme is illustrated by the following example, when
            N = 6, KD = 2, and UPLO = 'U':
            On entry:                       On exit:
                *    *   a13  a24  a35  a46      *    *   u13  u24  u35  u46
                *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
               a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
            Similarly, if UPLO = 'L' the format of A is as follows:
            On entry:                       On exit:
               a11  a22  a33  a44  a55  a66     l11  l22  l33  l44  l55  l66
               a21  a32  a43  a54  a65   *      l21  l32  l43  l54  l65   *
               a31  a42  a53  a64   *    *      l31  l42  l53  l64   *    *
            Array elements marked * are not used by the routine.
            

This method corresponds to the LAPACK routine ?PBTRF.

BandCholeskyDecompose(MatrixTriangle, Int32, Int32, Span<TComplex>, Int32, Int32)

Computes the Cholesky factorization of a complex Hermitian positive definite band matrix A.

C#
public abstract void BandCholeskyDecompose(
	MatrixTriangle uplo,
	int n,
	int kd,
	Span<TComplex> ab,
	int ldab,
	out int info
)

Parameters

uplo  MatrixTriangle
            = 'U':  Upper triangle of A is stored;
            = 'L':  Lower triangle of A is stored.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals of the matrix A if UPLO = 'U',
            or the number of subdiagonals if UPLO = 'L'.  KD >= 0.
            
ab  Span<TComplex>
            AB is TComplex array, dimension (LDAB,N)
            On entry, the upper or lower triangle of the Hermitian band
            matrix A, stored in the first KD+1 rows of the array.  The
            j-th column of A is stored in the j-th column of the array AB
            as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            On exit, if INFO = 0, the triangular factor U or L from the
            Cholesky factorization A = UH*U or A = L*LH of the band
            matrix A, in the same storage format as A.
            
ldab  Int32
            The leading dimension of the array AB.  LDAB >= KD+1.
            
info  Int32
            = 0:  successful exit
            < 0:  if INFO = -i, the i-th argument had an illegal value
            > 0:  if INFO = i, the leading minor of order i is not
                  positive definite, and the factorization could not be
                  completed.
            

Remarks

            The factorization has the form
               A = UH * U,  if UPLO = 'U', or
               A = L  * LH,  if UPLO = 'L',
            where U is an upper triangular matrix and L is lower triangular.
            

Further Details:

            The band storage scheme is illustrated by the following example, when
            N = 6, KD = 2, and UPLO = 'U':
            On entry:                       On exit:
                *    *   a13  a24  a35  a46      *    *   u13  u24  u35  u46
                *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
               a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
            Similarly, if UPLO = 'L' the format of A is as follows:
            On entry:                       On exit:
               a11  a22  a33  a44  a55  a66     l11  l22  l33  l44  l55  l66
               a21  a32  a43  a54  a65   *      l21  l32  l43  l54  l65   *
               a31  a42  a53  a64   *    *      l31  l42  l53  l64   *    *
            Array elements marked * are not used by the routine.
            

Contributors:

Peter Mayes and Giuseppe Radicati, IBM ECSEC, Rome, March 23, 1989

Authors: Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd.

Date: November 2011

See Also