ggsvp3#
Functions
-
void sggsvp3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT p, const INT n, f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, const f32 tola, const f32 tolb, INT *k, INT *l, f32 *restrict U, const INT ldu, f32 *restrict V, const INT ldv, f32 *restrict Q, const INT ldq, INT *restrict iwork, f32 *restrict tau, f32 *restrict work, const INT lwork, INT *info)#
SGGSVP3 computes orthogonal matrices U, V and Q such that.
U**T*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; L ( 0 0 A23 ) M-K-L ( 0 0 0 )N-K-L K L
= K ( 0 A12 A13 ) if M-K-L < 0; M-K ( 0 0 A23 )N-K-L K L
V**T*B*Q = L ( 0 0 B13 ) P-L ( 0 0 0 )N-K-L K L
where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular upper triangular. K+L = the effective numerical rank of (A**T,B**T)**T.
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.
inpThe number of rows of matrix B. p >= 0.
innThe number of columns of A and B. n >= 0.
inoutAOn entry, the M-by-N matrix A. On exit, triangular (or trapezoidal) matrix.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, triangular matrix.
inldbLeading dimension of B. ldb >= max(1,p).
intolaThreshold for rank determination of A.
intolbThreshold for rank determination of B.
outkSubblock dimension.
outlSubblock dimension.
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.
outiworkInteger workspace of dimension n.
outtauWorkspace of dimension n.
outworkWorkspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void sggsvp3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT p,
const INT n,
f32* restrict A,
const INT lda,
f32* restrict B,
const INT ldb,
const f32 tola,
const f32 tolb,
INT* k,
INT* l,
f32* restrict U,
const INT ldu,
f32* restrict V,
const INT ldv,
f32* restrict Q,
const INT ldq,
INT* restrict iwork,
f32* restrict tau,
f32* restrict work,
const INT lwork,
INT* info
);
Functions
-
void dggsvp3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT p, const INT n, f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, const f64 tola, const f64 tolb, INT *k, INT *l, f64 *restrict U, const INT ldu, f64 *restrict V, const INT ldv, f64 *restrict Q, const INT ldq, INT *restrict iwork, f64 *restrict tau, f64 *restrict work, const INT lwork, INT *info)#
DGGSVP3 computes orthogonal matrices U, V and Q such that.
U**T*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; L ( 0 0 A23 ) M-K-L ( 0 0 0 )N-K-L K L
= K ( 0 A12 A13 ) if M-K-L < 0; M-K ( 0 0 A23 )N-K-L K L
V**T*B*Q = L ( 0 0 B13 ) P-L ( 0 0 0 )N-K-L K L
where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular upper triangular. K+L = the effective numerical rank of (A**T,B**T)**T.
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.
inpThe number of rows of matrix B. p >= 0.
innThe number of columns of A and B. n >= 0.
inoutAOn entry, the M-by-N matrix A. On exit, triangular (or trapezoidal) matrix.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, triangular matrix.
inldbLeading dimension of B. ldb >= max(1,p).
intolaThreshold for rank determination of A.
intolbThreshold for rank determination of B.
outkSubblock dimension.
outlSubblock dimension.
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.
outiworkInteger workspace of dimension n.
outtauWorkspace of dimension n.
outworkWorkspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void dggsvp3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT p,
const INT n,
f64* restrict A,
const INT lda,
f64* restrict B,
const INT ldb,
const f64 tola,
const f64 tolb,
INT* k,
INT* l,
f64* restrict U,
const INT ldu,
f64* restrict V,
const INT ldv,
f64* restrict Q,
const INT ldq,
INT* restrict iwork,
f64* restrict tau,
f64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void cggsvp3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT p, const INT n, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, const f32 tola, const f32 tolb, INT *k, INT *l, c64 *restrict U, const INT ldu, c64 *restrict V, const INT ldv, c64 *restrict Q, const INT ldq, INT *restrict iwork, f32 *restrict rwork, c64 *restrict tau, c64 *restrict work, const INT lwork, INT *info)#
CGGSVP3 computes unitary matrices U, V and Q such that.
U**H*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; L ( 0 0 A23 ) M-K-L ( 0 0 0 )N-K-L K L
= K ( 0 A12 A13 ) if M-K-L < 0; M-K ( 0 0 A23 )N-K-L K L
V**H*B*Q = L ( 0 0 B13 ) P-L ( 0 0 0 )N-K-L K L
where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular upper triangular. K+L = the effective numerical rank of (A**H,B**H)**H.
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.
inpThe number of rows of matrix B. p >= 0.
innThe number of columns of A and B. n >= 0.
inoutAOn entry, the M-by-N matrix A. On exit, triangular (or trapezoidal) matrix.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, triangular matrix.
inldbLeading dimension of B. ldb >= max(1,p).
intolaThreshold for rank determination of A.
intolbThreshold for rank determination of B.
outkSubblock dimension.
outlSubblock dimension.
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.
outiworkInteger workspace of dimension n.
outrworkSingle precision workspace of dimension 2*n.
outtauComplex workspace of dimension n.
outworkComplex workspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void cggsvp3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT p,
const INT n,
c64* restrict A,
const INT lda,
c64* restrict B,
const INT ldb,
const f32 tola,
const f32 tolb,
INT* k,
INT* l,
c64* restrict U,
const INT ldu,
c64* restrict V,
const INT ldv,
c64* restrict Q,
const INT ldq,
INT* restrict iwork,
f32* restrict rwork,
c64* restrict tau,
c64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void zggsvp3(const char *jobu, const char *jobv, const char *jobq, const INT m, const INT p, const INT n, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, const f64 tola, const f64 tolb, INT *k, INT *l, c128 *restrict U, const INT ldu, c128 *restrict V, const INT ldv, c128 *restrict Q, const INT ldq, INT *restrict iwork, f64 *restrict rwork, c128 *restrict tau, c128 *restrict work, const INT lwork, INT *info)#
ZGGSVP3 computes unitary matrices U, V and Q such that.
U**H*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; L ( 0 0 A23 ) M-K-L ( 0 0 0 )N-K-L K L
= K ( 0 A12 A13 ) if M-K-L < 0; M-K ( 0 0 A23 )N-K-L K L
V**H*B*Q = L ( 0 0 B13 ) P-L ( 0 0 0 )N-K-L K L
where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular upper triangular. K+L = the effective numerical rank of (A**H,B**H)**H.
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.
inpThe number of rows of matrix B. p >= 0.
innThe number of columns of A and B. n >= 0.
inoutAOn entry, the M-by-N matrix A. On exit, triangular (or trapezoidal) matrix.
inldaLeading dimension of A. lda >= max(1,m).
inoutBOn entry, the P-by-N matrix B. On exit, triangular matrix.
inldbLeading dimension of B. ldb >= max(1,p).
intolaThreshold for rank determination of A.
intolbThreshold for rank determination of B.
outkSubblock dimension.
outlSubblock dimension.
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.
outiworkInteger workspace of dimension n.
outrworkDouble precision workspace of dimension 2*n.
outtauComplex workspace of dimension n.
outworkComplex workspace of dimension lwork.
inlworkDimension of work. If lwork = -1, workspace query.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void zggsvp3(
const char* jobu,
const char* jobv,
const char* jobq,
const INT m,
const INT p,
const INT n,
c128* restrict A,
const INT lda,
c128* restrict B,
const INT ldb,
const f64 tola,
const f64 tolb,
INT* k,
INT* l,
c128* restrict U,
const INT ldu,
c128* restrict V,
const INT ldv,
c128* restrict Q,
const INT ldq,
INT* restrict iwork,
f64* restrict rwork,
c128* restrict tau,
c128* restrict work,
const INT lwork,
INT* info
);