ggsvd3#
Functions
-
void sggsvd3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT n, const INT p, INT *k, INT *l, f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, f32 *restrict alpha, f32 *restrict beta, f32 *restrict U, const INT ldu, f32 *restrict V, const INT ldv, f32 *restrict Q, const INT ldq, f32 *restrict work, const INT lwork, INT *restrict iwork, INT *info)#
SGGSVD3 computes the generalized singular value decomposition (GSVD) of an M-by-N real matrix A and P-by-N real matrix B:
where U, V and Q are orthogonal matrices.U**T*A*Q = D1*( 0 R ), V**T*B*Q = D2*( 0 R )
Parameters
injobu= ‘U’: Orthogonal matrix U is computed; = ‘N’: U is not computed.
injobv= ‘V’: Orthogonal matrix V is computed; = ‘N’: V is not computed.
injobq= ‘Q’: Orthogonal matrix Q is computed; = ‘N’: Q is not computed.
inmThe number of rows of matrix A. m >= 0.
innThe number of columns of A and B. n >= 0.
inpThe number of rows of matrix B. p >= 0.
outkSubblock dimension.
outlSubblock dimension.
inoutAOn entry, the M-by-N matrix A. On exit, contains the triangular matrix R.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, may contain part of R.
inldbLeading dimension of B. ldb >= max(1,p).
outalphaGeneralized singular values (dimension n).
outbetaGeneralized singular values (dimension n).
outUOrthogonal matrix U (dimension ldu,m).
inlduLeading dimension of U.
outVOrthogonal matrix V (dimension ldv,p).
inldvLeading dimension of V.
outQOrthogonal matrix Q (dimension ldq,n).
inldqLeading dimension of Q.
outworkWorkspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outiworkInteger workspace of dimension n. Stores sorting info.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1: the Jacobi-type procedure failed to converge.
void sggsvd3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT n,
const INT p,
INT* k,
INT* l,
f32* restrict A,
const INT lda,
f32* restrict B,
const INT ldb,
f32* restrict alpha,
f32* restrict beta,
f32* restrict U,
const INT ldu,
f32* restrict V,
const INT ldv,
f32* restrict Q,
const INT ldq,
f32* restrict work,
const INT lwork,
INT* restrict iwork,
INT* info
);
Functions
-
void dggsvd3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT n, const INT p, INT *k, INT *l, f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, f64 *restrict alpha, f64 *restrict beta, f64 *restrict U, const INT ldu, f64 *restrict V, const INT ldv, f64 *restrict Q, const INT ldq, f64 *restrict work, const INT lwork, INT *restrict iwork, INT *info)#
DGGSVD3 computes the generalized singular value decomposition (GSVD) of an M-by-N real matrix A and P-by-N real matrix B:
where U, V and Q are orthogonal matrices.U**T*A*Q = D1*( 0 R ), V**T*B*Q = D2*( 0 R )
Parameters
injobu= ‘U’: Orthogonal matrix U is computed; = ‘N’: U is not computed.
injobv= ‘V’: Orthogonal matrix V is computed; = ‘N’: V is not computed.
injobq= ‘Q’: Orthogonal matrix Q is computed; = ‘N’: Q is not computed.
inmThe number of rows of matrix A. m >= 0.
innThe number of columns of A and B. n >= 0.
inpThe number of rows of matrix B. p >= 0.
outkSubblock dimension.
outlSubblock dimension.
inoutAOn entry, the M-by-N matrix A. On exit, contains the triangular matrix R.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, may contain part of R.
inldbLeading dimension of B. ldb >= max(1,p).
outalphaGeneralized singular values (dimension n).
outbetaGeneralized singular values (dimension n).
outUOrthogonal matrix U (dimension ldu,m).
inlduLeading dimension of U.
outVOrthogonal matrix V (dimension ldv,p).
inldvLeading dimension of V.
outQOrthogonal matrix Q (dimension ldq,n).
inldqLeading dimension of Q.
outworkWorkspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outiworkInteger workspace of dimension n. Stores sorting info.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1: the Jacobi-type procedure failed to converge.
void dggsvd3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT n,
const INT p,
INT* k,
INT* l,
f64* restrict A,
const INT lda,
f64* restrict B,
const INT ldb,
f64* restrict alpha,
f64* restrict beta,
f64* restrict U,
const INT ldu,
f64* restrict V,
const INT ldv,
f64* restrict Q,
const INT ldq,
f64* restrict work,
const INT lwork,
INT* restrict iwork,
INT* info
);
Functions
-
void cggsvd3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT n, const INT p, INT *k, INT *l, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, f32 *restrict alpha, f32 *restrict beta, c64 *restrict U, const INT ldu, c64 *restrict V, const INT ldv, c64 *restrict Q, const INT ldq, c64 *restrict work, const INT lwork, f32 *restrict rwork, INT *restrict iwork, INT *info)#
CGGSVD3 computes the generalized singular value decomposition (GSVD) of an M-by-N complex matrix A and P-by-N complex matrix B:
where U, V and Q are unitary matrices.U**H*A*Q = D1*( 0 R ), V**H*B*Q = D2*( 0 R )
Parameters
injobu= ‘U’: Unitary matrix U is computed; = ‘N’: U is not computed.
injobv= ‘V’: Unitary matrix V is computed; = ‘N’: V is not computed.
injobq= ‘Q’: Unitary matrix Q is computed; = ‘N’: Q is not computed.
inmThe number of rows of matrix A. m >= 0.
innThe number of columns of A and B. n >= 0.
inpThe number of rows of matrix B. p >= 0.
outkSubblock dimension.
outlSubblock dimension.
inoutAOn entry, the M-by-N matrix A. On exit, contains the triangular matrix R.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, may contain part of R.
inldbLeading dimension of B. ldb >= max(1,p).
outalphaGeneralized singular values (dimension n).
outbetaGeneralized singular values (dimension n).
outUUnitary matrix U (dimension ldu,m).
inlduLeading dimension of U.
outVUnitary matrix V (dimension ldv,p).
inldvLeading dimension of V.
outQUnitary matrix Q (dimension ldq,n).
inldqLeading dimension of Q.
outworkComplex workspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outrworkSingle precision workspace of dimension 2*n.
outiworkInteger workspace of dimension n. Stores sorting info.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1: the Jacobi-type procedure failed to converge.
void cggsvd3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT n,
const INT p,
INT* k,
INT* l,
c64* restrict A,
const INT lda,
c64* restrict B,
const INT ldb,
f32* restrict alpha,
f32* restrict beta,
c64* restrict U,
const INT ldu,
c64* restrict V,
const INT ldv,
c64* restrict Q,
const INT ldq,
c64* restrict work,
const INT lwork,
f32* restrict rwork,
INT* restrict iwork,
INT* info
);
Functions
-
void zggsvd3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT n, const INT p, INT *k, INT *l, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, f64 *restrict alpha, f64 *restrict beta, c128 *restrict U, const INT ldu, c128 *restrict V, const INT ldv, c128 *restrict Q, const INT ldq, c128 *restrict work, const INT lwork, f64 *restrict rwork, INT *restrict iwork, INT *info)#
ZGGSVD3 computes the generalized singular value decomposition (GSVD) of an M-by-N complex matrix A and P-by-N complex matrix B:
where U, V and Q are unitary matrices.U**H*A*Q = D1*( 0 R ), V**H*B*Q = D2*( 0 R )
Parameters
injobu= ‘U’: Unitary matrix U is computed; = ‘N’: U is not computed.
injobv= ‘V’: Unitary matrix V is computed; = ‘N’: V is not computed.
injobq= ‘Q’: Unitary matrix Q is computed; = ‘N’: Q is not computed.
inmThe number of rows of matrix A. m >= 0.
innThe number of columns of A and B. n >= 0.
inpThe number of rows of matrix B. p >= 0.
outkSubblock dimension.
outlSubblock dimension.
inoutAOn entry, the M-by-N matrix A. On exit, contains the triangular matrix R.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, may contain part of R.
inldbLeading dimension of B. ldb >= max(1,p).
outalphaGeneralized singular values (dimension n).
outbetaGeneralized singular values (dimension n).
outUUnitary matrix U (dimension ldu,m).
inlduLeading dimension of U.
outVUnitary matrix V (dimension ldv,p).
inldvLeading dimension of V.
outQUnitary matrix Q (dimension ldq,n).
inldqLeading dimension of Q.
outworkComplex workspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outrworkDouble precision workspace of dimension 2*n.
outiworkInteger workspace of dimension n. Stores sorting info.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1: the Jacobi-type procedure failed to converge.
void zggsvd3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT n,
const INT p,
INT* k,
INT* l,
c128* restrict A,
const INT lda,
c128* restrict B,
const INT ldb,
f64* restrict alpha,
f64* restrict beta,
c128* restrict U,
const INT ldu,
c128* restrict V,
const INT ldv,
c128* restrict Q,
const INT ldq,
c128* restrict work,
const INT lwork,
f64* restrict rwork,
INT* restrict iwork,
INT* info
);