gbbrd#

Functions

void sgbbrd(
    const char*          vect,
    const INT            m,
    const INT            n,
    const INT            ncc,
    const INT            kl,
    const INT            ku,
          f32*  restrict AB,
    const INT            ldab,
          f32*  restrict D,
          f32*  restrict E,
          f32*  restrict Q,
    const INT            ldq,
          f32*  restrict PT,
    const INT            ldpt,
          f32*  restrict C,
    const INT            ldc,
          f32*  restrict work,
          INT*           info
);
void sgbbrd(const char *vect, const INT m, const INT n, const INT ncc, const INT kl, const INT ku, f32 *restrict AB, const INT ldab, f32 *restrict D, f32 *restrict E, f32 *restrict Q, const INT ldq, f32 *restrict PT, const INT ldpt, f32 *restrict C, const INT ldc, f32 *restrict work, INT *info)#

SGBBRD reduces a real general m-by-n band matrix A to upper bidiagonal form B by an orthogonal transformation: Q**T * A * P = B.

The routine computes B, and optionally forms Q or P**T, or computes Q**T*C for a given matrix C.

Parameters

in
vect

Specifies whether or not the matrices Q and P**T are to be formed. = ‘N’: do not form Q or P**T; = ‘Q’: form Q only; = ‘P’: form P**T only; = ‘B’: form both.

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
ncc

The number of columns of the matrix C. ncc >= 0.

in
kl

The number of subdiagonals of the matrix A. kl >= 0.

in
ku

The number of superdiagonals of the matrix A. ku >= 0.

inout
AB

Double precision array, dimension (ldab, n). On entry, the m-by-n band matrix A, stored in rows 0 to kl+ku. The j-th column of A is stored in the j-th column of the array AB as follows: AB[ku+i-j + j*ldab] = A(i,j) for max(0,j-ku)<=i<=min(m-1,j+kl). On exit, A is overwritten by values generated during the reduction.

in
ldab

The leading dimension of the array A. ldab >= kl+ku+1.

out
D

Double precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.

out
E

Double precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.

out
Q

Double precision array, dimension (ldq, m). If vect = ‘Q’ or ‘B’, the m-by-m orthogonal matrix Q. If vect = ‘N’ or ‘P’, the array Q is not referenced.

in
ldq

The leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.

out
PT

Double precision array, dimension (ldpt, n). If vect = ‘P’ or ‘B’, the n-by-n orthogonal matrix P’. If vect = ‘N’ or ‘Q’, the array PT is not referenced.

in
ldpt

The leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.

inout
C

Double precision array, dimension (ldc, ncc). On entry, an m-by-ncc matrix C. On exit, C is overwritten by Q**T*C. C is not referenced if ncc = 0.

in
ldc

The leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.

out
work

Double precision array, dimension (2*max(m,n)).

out
info

  • = 0: successful exit.

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

Functions

void dgbbrd(
    const char*          vect,
    const INT            m,
    const INT            n,
    const INT            ncc,
    const INT            kl,
    const INT            ku,
          f64*  restrict AB,
    const INT            ldab,
          f64*  restrict D,
          f64*  restrict E,
          f64*  restrict Q,
    const INT            ldq,
          f64*  restrict PT,
    const INT            ldpt,
          f64*  restrict C,
    const INT            ldc,
          f64*  restrict work,
          INT*           info
);
void dgbbrd(const char *vect, const INT m, const INT n, const INT ncc, const INT kl, const INT ku, f64 *restrict AB, const INT ldab, f64 *restrict D, f64 *restrict E, f64 *restrict Q, const INT ldq, f64 *restrict PT, const INT ldpt, f64 *restrict C, const INT ldc, f64 *restrict work, INT *info)#

DGBBRD reduces a real general m-by-n band matrix A to upper bidiagonal form B by an orthogonal transformation: Q**T * A * P = B.

The routine computes B, and optionally forms Q or P**T, or computes Q**T*C for a given matrix C.

Parameters

in
vect

Specifies whether or not the matrices Q and P**T are to be formed. = ‘N’: do not form Q or P**T; = ‘Q’: form Q only; = ‘P’: form P**T only; = ‘B’: form both.

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
ncc

The number of columns of the matrix C. ncc >= 0.

in
kl

The number of subdiagonals of the matrix A. kl >= 0.

in
ku

The number of superdiagonals of the matrix A. ku >= 0.

inout
AB

Double precision array, dimension (ldab, n). On entry, the m-by-n band matrix A, stored in rows 0 to kl+ku. The j-th column of A is stored in the j-th column of the array AB as follows: AB[ku+i-j + j*ldab] = A(i,j) for max(0,j-ku)<=i<=min(m-1,j+kl). On exit, A is overwritten by values generated during the reduction.

in
ldab

The leading dimension of the array A. ldab >= kl+ku+1.

out
D

Double precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.

out
E

Double precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.

out
Q

Double precision array, dimension (ldq, m). If vect = ‘Q’ or ‘B’, the m-by-m orthogonal matrix Q. If vect = ‘N’ or ‘P’, the array Q is not referenced.

in
ldq

The leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.

out
PT

Double precision array, dimension (ldpt, n). If vect = ‘P’ or ‘B’, the n-by-n orthogonal matrix P’. If vect = ‘N’ or ‘Q’, the array PT is not referenced.

in
ldpt

The leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.

inout
C

Double precision array, dimension (ldc, ncc). On entry, an m-by-ncc matrix C. On exit, C is overwritten by Q**T*C. C is not referenced if ncc = 0.

in
ldc

The leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.

out
work

Double precision array, dimension (2*max(m,n)).

out
info

  • = 0: successful exit.

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

Functions

void cgbbrd(
    const char*          vect,
    const INT            m,
    const INT            n,
    const INT            ncc,
    const INT            kl,
    const INT            ku,
          c64*  restrict AB,
    const INT            ldab,
          f32*  restrict D,
          f32*  restrict E,
          c64*  restrict Q,
    const INT            ldq,
          c64*  restrict PT,
    const INT            ldpt,
          c64*  restrict C,
    const INT            ldc,
          c64*  restrict work,
          f32*  restrict rwork,
          INT*           info
);
void cgbbrd(const char *vect, const INT m, const INT n, const INT ncc, const INT kl, const INT ku, c64 *restrict AB, const INT ldab, f32 *restrict D, f32 *restrict E, c64 *restrict Q, const INT ldq, c64 *restrict PT, const INT ldpt, c64 *restrict C, const INT ldc, c64 *restrict work, f32 *restrict rwork, INT *info)#

CGBBRD reduces a complex general m-by-n band matrix A to real upper bidiagonal form B by a unitary transformation: Q**H * A * P = B.

The routine computes B, and optionally forms Q or P**H, or computes Q**H*C for a given matrix C.

Parameters

in
vect

Specifies whether or not the matrices Q and P**H are to be formed. = ‘N’: do not form Q or P**H; = ‘Q’: form Q only; = ‘P’: form P**H only; = ‘B’: form both.

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
ncc

The number of columns of the matrix C. ncc >= 0.

in
kl

The number of subdiagonals of the matrix A. kl >= 0.

in
ku

The number of superdiagonals of the matrix A. ku >= 0.

inout
AB

Complex array, dimension (ldab, n). On entry, the m-by-n band matrix A, stored in rows 0 to kl+ku. The j-th column of A is stored in the j-th column of the array AB as follows: AB[ku+i-j + j*ldab] = A(i,j) for max(0,j-ku)<=i<=min(m-1,j+kl). On exit, A is overwritten by values generated during the reduction.

in
ldab

The leading dimension of the array A. ldab >= kl+ku+1.

out
D

Single precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.

out
E

Single precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.

out
Q

Complex array, dimension (ldq, m). If vect = ‘Q’ or ‘B’, the m-by-m unitary matrix Q. If vect = ‘N’ or ‘P’, the array Q is not referenced.

in
ldq

The leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.

out
PT

Complex array, dimension (ldpt, n). If vect = ‘P’ or ‘B’, the n-by-n unitary matrix P’. If vect = ‘N’ or ‘Q’, the array PT is not referenced.

in
ldpt

The leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.

inout
C

Complex array, dimension (ldc, ncc). On entry, an m-by-ncc matrix C. On exit, C is overwritten by Q**H*C. C is not referenced if ncc = 0.

in
ldc

The leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.

out
work

Complex array, dimension (max(m,n)).

out
rwork

Single precision array, dimension (max(m,n)).

out
info

  • = 0: successful exit.

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

Functions

void zgbbrd(
    const char*          vect,
    const INT            m,
    const INT            n,
    const INT            ncc,
    const INT            kl,
    const INT            ku,
          c128* restrict AB,
    const INT            ldab,
          f64*  restrict D,
          f64*  restrict E,
          c128* restrict Q,
    const INT            ldq,
          c128* restrict PT,
    const INT            ldpt,
          c128* restrict C,
    const INT            ldc,
          c128* restrict work,
          f64*  restrict rwork,
          INT*           info
);
void zgbbrd(const char *vect, const INT m, const INT n, const INT ncc, const INT kl, const INT ku, c128 *restrict AB, const INT ldab, f64 *restrict D, f64 *restrict E, c128 *restrict Q, const INT ldq, c128 *restrict PT, const INT ldpt, c128 *restrict C, const INT ldc, c128 *restrict work, f64 *restrict rwork, INT *info)#

ZGBBRD reduces a complex general m-by-n band matrix A to real upper bidiagonal form B by a unitary transformation: Q**H * A * P = B.

The routine computes B, and optionally forms Q or P**H, or computes Q**H*C for a given matrix C.

Parameters

in
vect

Specifies whether or not the matrices Q and P**H are to be formed. = ‘N’: do not form Q or P**H; = ‘Q’: form Q only; = ‘P’: form P**H only; = ‘B’: form both.

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
ncc

The number of columns of the matrix C. ncc >= 0.

in
kl

The number of subdiagonals of the matrix A. kl >= 0.

in
ku

The number of superdiagonals of the matrix A. ku >= 0.

inout
AB

Complex array, dimension (ldab, n). On entry, the m-by-n band matrix A, stored in rows 0 to kl+ku. The j-th column of A is stored in the j-th column of the array AB as follows: AB[ku+i-j + j*ldab] = A(i,j) for max(0,j-ku)<=i<=min(m-1,j+kl). On exit, A is overwritten by values generated during the reduction.

in
ldab

The leading dimension of the array A. ldab >= kl+ku+1.

out
D

Double precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.

out
E

Double precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.

out
Q

Complex array, dimension (ldq, m). If vect = ‘Q’ or ‘B’, the m-by-m unitary matrix Q. If vect = ‘N’ or ‘P’, the array Q is not referenced.

in
ldq

The leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.

out
PT

Complex array, dimension (ldpt, n). If vect = ‘P’ or ‘B’, the n-by-n unitary matrix P’. If vect = ‘N’ or ‘Q’, the array PT is not referenced.

in
ldpt

The leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.

inout
C

Complex array, dimension (ldc, ncc). On entry, an m-by-ncc matrix C. On exit, C is overwritten by Q**H*C. C is not referenced if ncc = 0.

in
ldc

The leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.

out
work

Complex array, dimension (max(m,n)).

out
rwork

Double precision array, dimension (max(m,n)).

out
info

  • = 0: successful exit.

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