Developer Reference for Intel® oneAPI Math Kernel Library for C
?ggsvp
Computes the preprocessing decomposition for the generalized SVD (deprecated).
Syntax
lapack_int LAPACKE_sggsvp ( intmatrix_layout , charjobu , charjobv , charjobq , lapack_intm , lapack_intp , lapack_intn , float*a , lapack_intlda , float*b , lapack_intldb , floattola , floattolb , lapack_int*k , lapack_int*l , float*u , lapack_intldu , float*v , lapack_intldv , float*q , lapack_intldq );
lapack_int LAPACKE_dggsvp ( intmatrix_layout , charjobu , charjobv , charjobq , lapack_intm , lapack_intp , lapack_intn , double*a , lapack_intlda , double*b , lapack_intldb , doubletola , doubletolb , lapack_int*k , lapack_int*l , double*u , lapack_intldu , double*v , lapack_intldv , double*q , lapack_intldq );
lapack_int LAPACKE_cggsvp ( intmatrix_layout , charjobu , charjobv , charjobq , lapack_intm , lapack_intp , lapack_intn , lapack_complex_float*a , lapack_intlda , lapack_complex_float*b , lapack_intldb , floattola , floattolb , lapack_int*k , lapack_int*l , lapack_complex_float*u , lapack_intldu , lapack_complex_float*v , lapack_intldv , lapack_complex_float*q , lapack_intldq );
lapack_int LAPACKE_zggsvp ( intmatrix_layout , charjobu , charjobv , charjobq , lapack_intm , lapack_intp , lapack_intn , lapack_complex_double*a , lapack_intlda , lapack_complex_double*b , lapack_intldb , doubletola , doubletolb , lapack_int*k , lapack_int*l , lapack_complex_double*u , lapack_intldu , lapack_complex_double*v , lapack_intldv , lapack_complex_double*q , lapack_intldq );
Include Files
mkl.h
Description
sggsvp dggsvp cggsvp zggsvp ggsvp This routine is deprecated; use ggsvp3 (Performs preprocessing for a generalized SVD.) .
The routine computes orthogonal matrices U , V and Q such that
where the k -by- k matrix A12 and l -by- l matrix B13 are nonsingular upper triangular; A23 is l -by- l upper triangular if m-k-l≥0 , otherwise A23 is ( m - k )-by- l upper trapezoidal. The sum k + l is equal to the effective numerical rank of the ( m + p )-by- n matrix ( A:code:`H` , B:code:`H` ) :code:`H` .
This decomposition is the preprocessing step for computing the Generalized Singular Value Decomposition (GSVD), see subroutine ?tgsja .
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
jobu
Must be ‘U’ or ‘N’ .
If jobu = 'U' , orthogonal/unitary matrix U is computed. If jobu = 'N' , U is not computed.
jobv
Must be ‘V’ or ‘N’ .
If jobv = 'V' , orthogonal/unitary matrix V is computed. If jobv = 'N' , V is not computed.
jobq
Must be ‘Q’ or ‘N’ .
If jobq = 'Q' , orthogonal/unitary matrix Q is computed. If jobq = 'N' , Q is not computed.
m
The number of rows of the matrix A ( m ≥ 0).
p
The number of rows of the matrix B ( p ≥ 0).
n
The number of columns of the matrices A and B ( n ≥ 0).
- a , b , tau , work
-
REAL for sggsvp DOUBLE PRECISION for dggsvp COMPLEX for cggsvp DOUBLE COMPLEX for zggsvp . Arrays:
a (size at least max(1, lda * n ) for column major layout and max(1, lda * m ) for row major layout) contains the m -by- n matrix A .
The second dimension of a must be at least max(1, n ).
b (size at least max(1, ldb * n ) for column major layout and max(1, ldb * p ) for row major layout) contains the p -by- n matrix B .
The second dimension of b must be at least max(1, n ). tau (* ) is a workspace array. The dimension of tau must be at least max(1, n ). work (* ) is a workspace array. The dimension of work must be at least max(1, 3 n , m , p ).
lda
The leading dimension of a ; at least max(1, m ) for column major layout and max(1, n ) for row major layout .
ldb
The leading dimension of b ; at least max(1, p ) for column major layout and max(1, n ) for row major layout .
- tola , tolb
-
REAL for single-precision flavors DOUBLE PRECISION for double-precision flavors. tola and tolb are the thresholds to determine the effective numerical rank of matrix B and a subblock of A . Generally, they are set to tola = max(m, n)*||A||*MACHEPS , tolb = max(p, n)*||B||*MACHEPS . The size of tola and tolb may affect the size of backward errors of the decomposition.
ldu
The leading dimension of the output array u . ldu≥ max(1, m) if jobu = 'U' ; ldu≥ 1 otherwise.
ldv
The leading dimension of the output array v . ldv≥ max(1, p) if jobv = 'V' ; ldv≥ 1 otherwise.
ldq
The leading dimension of the output array q . ldq≥ max(1, n) if jobq = 'Q' ; ldq≥ 1 otherwise.
iwork
Workspace array, size at least max(1, n ).
- rwork
-
REAL for cggsvp DOUBLE PRECISION for zggsvp . Workspace array, size at least max(1, 2 n ). Used in complex flavors only.
Output Parameters
- a
-
Overwritten by the triangular (or trapezoidal) matrix described in the Description section .
- b
-
Overwritten by the triangular matrix described in the Description section .
k , l
On exit, k and l specify the dimension of subblocks. The sum k + l is equal to effective numerical rank of ( A:code:`H` , B:code:`H` ) :code:`H` .
- u , v , q
-
REAL for sggsvp DOUBLE PRECISION for dggsvp COMPLEX for cggsvp DOUBLE COMPLEX for zggsvp . Arrays:
If jobu = 'U' , u (size max(1, ldu * m )) contains the orthogonal/unitary matrix U .
The second dimension of u must be at least max(1, m ). If jobu = 'N' , u is not referenced.
If jobv = 'V' , v (size max(1, ldv * p )) contains the orthogonal/unitary matrix V .
The second dimension of v must be at least max(1, m ). If jobv = 'N' , v is not referenced.
If jobq = 'Q' , q (size max(1, ldq * n )) contains the orthogonal/unitary matrix Q .
The second dimension of q must be at least max(1, n ). If jobq = 'N' , q is not referenced.
Return Values
This function returns a value info .
If info=0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.