pbtf2#

Functions

void spbtf2(
    const char*          uplo,
    const INT            n,
    const INT            kd,
          f32*  restrict AB,
    const INT            ldab,
          INT*           info
);
void spbtf2(const char *uplo, const INT n, const INT kd, f32 *restrict AB, const INT ldab, INT *info)#

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

The factorization has the form

A = U**T * U ,  if uplo = 'U', or
A = L  * L**T,  if uplo = 'L',

where U is an upper triangular matrix, U**T is the transpose of U, and L is lower triangular.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Further Details:

The band storage scheme is illustrated by the following example, when n=6, kd=2, and uplo='U':

On entry:                       On exit:

     *    *   a02  a13  a24  a35      *    *   u02  u13  u24  u35
     *   a01  a12  a23  a34  a45      *   u01  u12  u23  u34  u45
    a00  a11  a22  a33  a44  a55     u00  u11  u22  u33  u44  u55

Similarly, if uplo='L' the format of A is as follows:

On entry:                       On exit:

    a00  a11  a22  a33  a44  a55     l00  l11  l22  l33  l44  l55
    a10  a21  a32  a43  a54   *      l10  l21  l32  l43  l54   *
    a20  a31  a42  a53   *    *      l20  l31  l42  l53   *    *

Array elements marked * are not used by the routine.

Parameters

in
uplo

  • 'U': Upper triangular

  • 'L': Lower triangular

in
n

The order of the matrix A. n>=0.

in
kd

The number of superdiagonals of the matrix A if uplo='U', or the number of subdiagonals if uplo='L'. kd>=0.

inout
AB

Array of 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+i-j + j*ldab] = A(i,j) for max(0,j-kd)<=i<=j; if uplo='L', AB[i-j + j*ldab] = A(i,j) for j<=i<=min(n-1,j+kd). On exit, if info=0, the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, in the same storage format as A.

in
ldab

The leading dimension of the array AB. ldab>=kd+1.

out
info

  • info=0: successful exit

  • info<0: if info=-k, the k-th argument had an illegal value

  • info>0: if info=k, the leading principal minor of order k is not positive, and the factorization could not be completed.

Functions

void dpbtf2(
    const char*          uplo,
    const INT            n,
    const INT            kd,
          f64*  restrict AB,
    const INT            ldab,
          INT*           info
);
void dpbtf2(const char *uplo, const INT n, const INT kd, f64 *restrict AB, const INT ldab, INT *info)#

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

The factorization has the form

A = U**T * U ,  if uplo = 'U', or
A = L  * L**T,  if uplo = 'L',

where U is an upper triangular matrix, U**T is the transpose of U, and L is lower triangular.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Further Details:

The band storage scheme is illustrated by the following example, when n=6, kd=2, and uplo='U':

On entry:                       On exit:

     *    *   a02  a13  a24  a35      *    *   u02  u13  u24  u35
     *   a01  a12  a23  a34  a45      *   u01  u12  u23  u34  u45
    a00  a11  a22  a33  a44  a55     u00  u11  u22  u33  u44  u55

Similarly, if uplo='L' the format of A is as follows:

On entry:                       On exit:

    a00  a11  a22  a33  a44  a55     l00  l11  l22  l33  l44  l55
    a10  a21  a32  a43  a54   *      l10  l21  l32  l43  l54   *
    a20  a31  a42  a53   *    *      l20  l31  l42  l53   *    *

Array elements marked * are not used by the routine.

Parameters

in
uplo

  • 'U': Upper triangular

  • 'L': Lower triangular

in
n

The order of the matrix A. n>=0.

in
kd

The number of superdiagonals of the matrix A if uplo='U', or the number of subdiagonals if uplo='L'. kd>=0.

inout
AB

Array of 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+i-j + j*ldab] = A(i,j) for max(0,j-kd)<=i<=j; if uplo='L', AB[i-j + j*ldab] = A(i,j) for j<=i<=min(n-1,j+kd). On exit, if info=0, the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, in the same storage format as A.

in
ldab

The leading dimension of the array AB. ldab>=kd+1.

out
info

  • info=0: successful exit

  • info<0: if info=-k, the k-th argument had an illegal value

  • info>0: if info=k, the leading principal minor of order k is not positive, and the factorization could not be completed.

Functions

void cpbtf2(
    const char*          uplo,
    const INT            n,
    const INT            kd,
          c64*  restrict AB,
    const INT            ldab,
          INT*           info
);
void cpbtf2(const char *uplo, const INT n, const INT kd, c64 *restrict AB, const INT ldab, INT *info)#

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

The factorization has the form

A = U**H * U ,  if uplo = 'U', or
A = L  * L**H,  if uplo = 'L',

where U is an upper triangular matrix, U**H is the conjugate transpose of U, and L is lower triangular.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Further Details:

The band storage scheme is illustrated by the following example, when n=6, kd=2, and uplo='U':

On entry:                       On exit:

     *    *   a02  a13  a24  a35      *    *   u02  u13  u24  u35
     *   a01  a12  a23  a34  a45      *   u01  u12  u23  u34  u45
    a00  a11  a22  a33  a44  a55     u00  u11  u22  u33  u44  u55

Similarly, if uplo='L' the format of A is as follows:

On entry:                       On exit:

    a00  a11  a22  a33  a44  a55     l00  l11  l22  l33  l44  l55
    a10  a21  a32  a43  a54   *      l10  l21  l32  l43  l54   *
    a20  a31  a42  a53   *    *      l20  l31  l42  l53   *    *

Array elements marked * are not used by the routine.

Parameters

in
uplo

  • 'U': Upper triangular

  • 'L': Lower triangular

in
n

The order of the matrix A. n>=0.

in
kd

The number of superdiagonals of the matrix A if uplo='U', or the number of subdiagonals if uplo='L'. kd>=0.

inout
AB

Array of 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+i-j + j*ldab] = A(i,j) for max(0,j-kd)<=i<=j; if uplo='L', AB[i-j + j*ldab] = A(i,j) for j<=i<=min(n-1,j+kd). On exit, if info=0, the triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H of the band matrix A, in the same storage format as A.

in
ldab

The leading dimension of the array AB. ldab>=kd+1.

out
info

  • info=0: successful exit

  • info<0: if info=-k, the k-th argument had an illegal value

  • info>0: if info=k, the leading principal minor of order k is not positive, and the factorization could not be completed.

Functions

void zpbtf2(
    const char*          uplo,
    const INT            n,
    const INT            kd,
          c128* restrict AB,
    const INT            ldab,
          INT*           info
);
void zpbtf2(const char *uplo, const INT n, const INT kd, c128 *restrict AB, const INT ldab, INT *info)#

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

The factorization has the form

A = U**H * U ,  if uplo = 'U', or
A = L  * L**H,  if uplo = 'L',

where U is an upper triangular matrix, U**H is the conjugate transpose of U, and L is lower triangular.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Further Details:

The band storage scheme is illustrated by the following example, when n=6, kd=2, and uplo='U':

On entry:                       On exit:

     *    *   a02  a13  a24  a35      *    *   u02  u13  u24  u35
     *   a01  a12  a23  a34  a45      *   u01  u12  u23  u34  u45
    a00  a11  a22  a33  a44  a55     u00  u11  u22  u33  u44  u55

Similarly, if uplo='L' the format of A is as follows:

On entry:                       On exit:

    a00  a11  a22  a33  a44  a55     l00  l11  l22  l33  l44  l55
    a10  a21  a32  a43  a54   *      l10  l21  l32  l43  l54   *
    a20  a31  a42  a53   *    *      l20  l31  l42  l53   *    *

Array elements marked * are not used by the routine.

Parameters

in
uplo

  • 'U': Upper triangular

  • 'L': Lower triangular

in
n

The order of the matrix A. n>=0.

in
kd

The number of superdiagonals of the matrix A if uplo='U', or the number of subdiagonals if uplo='L'. kd>=0.

inout
AB

Array of 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+i-j + j*ldab] = A(i,j) for max(0,j-kd)<=i<=j; if uplo='L', AB[i-j + j*ldab] = A(i,j) for j<=i<=min(n-1,j+kd). On exit, if info=0, the triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H of the band matrix A, in the same storage format as A.

in
ldab

The leading dimension of the array AB. ldab>=kd+1.

out
info

  • info=0: successful exit

  • info<0: if info=-k, the k-th argument had an illegal value

  • info>0: if info=k, the leading principal minor of order k is not positive, and the factorization could not be completed.