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)#
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
invectSpecifies 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.
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innccThe number of columns of the matrix C. ncc >= 0.
inklThe number of subdiagonals of the matrix A. kl >= 0.
inkuThe number of superdiagonals of the matrix A. ku >= 0.
inoutABDouble 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.
inldabThe leading dimension of the array A. ldab >= kl+ku+1.
outDDouble precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.
outEDouble precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.
outQDouble 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.
inldqThe leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.
outPTDouble 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.
inldptThe leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.
inoutCDouble 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.
inldcThe leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.
outworkDouble precision array, dimension (2*max(m,n)).
outinfo= 0: successful exit.
< 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
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
invectSpecifies 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.
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innccThe number of columns of the matrix C. ncc >= 0.
inklThe number of subdiagonals of the matrix A. kl >= 0.
inkuThe number of superdiagonals of the matrix A. ku >= 0.
inoutABDouble 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.
inldabThe leading dimension of the array A. ldab >= kl+ku+1.
outDDouble precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.
outEDouble precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.
outQDouble 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.
inldqThe leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.
outPTDouble 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.
inldptThe leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.
inoutCDouble 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.
inldcThe leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.
outworkDouble precision array, dimension (2*max(m,n)).
outinfo= 0: successful exit.
< 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
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
invectSpecifies 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.
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innccThe number of columns of the matrix C. ncc >= 0.
inklThe number of subdiagonals of the matrix A. kl >= 0.
inkuThe number of superdiagonals of the matrix A. ku >= 0.
inoutABComplex 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.
inldabThe leading dimension of the array A. ldab >= kl+ku+1.
outDSingle precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.
outESingle precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.
outQComplex 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.
inldqThe leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.
outPTComplex 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.
inldptThe leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.
inoutCComplex 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.
inldcThe leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.
outworkComplex array, dimension (max(m,n)).
outrworkSingle precision array, dimension (max(m,n)).
outinfo= 0: successful exit.
< 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
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
invectSpecifies 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.
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innccThe number of columns of the matrix C. ncc >= 0.
inklThe number of subdiagonals of the matrix A. kl >= 0.
inkuThe number of superdiagonals of the matrix A. ku >= 0.
inoutABComplex 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.
inldabThe leading dimension of the array A. ldab >= kl+ku+1.
outDDouble precision array, dimension (min(m,n)). The diagonal elements of the bidiagonal matrix B.
outEDouble precision array, dimension (min(m,n)-1). The superdiagonal elements of the bidiagonal matrix B.
outQComplex 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.
inldqThe leading dimension of the array Q. ldq >= max(1,m) if vect = ‘Q’ or ‘B’; ldq >= 1 otherwise.
outPTComplex 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.
inldptThe leading dimension of the array PT. ldpt >= max(1,n) if vect = ‘P’ or ‘B’; ldpt >= 1 otherwise.
inoutCComplex 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.
inldcThe leading dimension of the array C. ldc >= max(1,m) if ncc > 0; ldc >= 1 if ncc = 0.
outworkComplex array, dimension (max(m,n)).
outrworkDouble precision array, dimension (max(m,n)).
outinfo= 0: successful exit.
< 0: if info = -i, the i-th argument had an illegal value.
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
);