?ggsvp
?ggsvp
Computes the preprocessing decomposition for the generalized SVD (deprecated).
Syntax
lapack_int LAPACKE_sggsvp
(
int
matrix_layout
,
char
jobu
,
char
jobv
,
char
jobq
,
lapack_int
m
,
lapack_int
p
,
lapack_int
n
,
float*
a
,
lapack_int
lda
,
float*
b
,
lapack_int
ldb
,
float
tola
,
float
tolb
,
lapack_int*
k
,
lapack_int*
l
,
float*
u
,
lapack_int
ldu
,
float*
v
,
lapack_int
ldv
,
float*
q
,
lapack_int
ldq
);
lapack_int LAPACKE_dggsvp
(
int
matrix_layout
,
char
jobu
,
char
jobv
,
char
jobq
,
lapack_int
m
,
lapack_int
p
,
lapack_int
n
,
double*
a
,
lapack_int
lda
,
double*
b
,
lapack_int
ldb
,
double
tola
,
double
tolb
,
lapack_int*
k
,
lapack_int*
l
,
double*
u
,
lapack_int
ldu
,
double*
v
,
lapack_int
ldv
,
double*
q
,
lapack_int
ldq
);
lapack_int LAPACKE_cggsvp
(
int
matrix_layout
,
char
jobu
,
char
jobv
,
char
jobq
,
lapack_int
m
,
lapack_int
p
,
lapack_int
n
,
lapack_complex_float*
a
,
lapack_int
lda
,
lapack_complex_float*
b
,
lapack_int
ldb
,
float
tola
,
float
tolb
,
lapack_int*
k
,
lapack_int*
l
,
lapack_complex_float*
u
,
lapack_int
ldu
,
lapack_complex_float*
v
,
lapack_int
ldv
,
lapack_complex_float*
q
,
lapack_int
ldq
);
lapack_int LAPACKE_zggsvp
(
int
matrix_layout
,
char
jobu
,
char
jobv
,
char
jobq
,
lapack_int
m
,
lapack_int
p
,
lapack_int
n
,
lapack_complex_double*
a
,
lapack_int
lda
,
lapack_complex_double*
b
,
lapack_int
ldb
,
double
tola
,
double
tolb
,
lapack_int*
k
,
lapack_int*
l
,
lapack_complex_double*
u
,
lapack_int
ldu
,
lapack_complex_double*
v
,
lapack_int
ldv
,
lapack_complex_double*
q
,
lapack_int
ldq
);
Include Files
- mkl.h
Description
This routine is deprecated; use
ggsvp3
.The routine computes orthogonal matrices
U
, V
and Q
such that


where the , otherwise ,).
k
-by-k
matrix A
12
and l
-by-l
matrix B
13
are nonsingular upper triangular; A
23
is l
-by-l
upper triangular if m
-k
-l
≥
0A
23
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
H
B
H
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, orthogonal/unitary matrixjobu='U'Uis computed.If,jobu='N'Uis not computed.
- jobv
- Must be'V'or'N'.If, orthogonal/unitary matrixjobv='V'Vis computed.If,jobv='N'Vis not computed.
- jobq
- Must be'Q'or'N'.If, orthogonal/unitary matrixjobq='Q'Qis computed.If,jobq='N'Qis not computed.
- m
- The number of rows of the matrixA(m≥0).
- p
- The number of rows of the matrixB(p≥0).
- n
- The number of columns of the matricesAandB(n≥0).
- a,b
- Arrays:a(size at least max(1,contains thelda*n) for column major layout and max(1,lda*m) for row major layout)m-by-nmatrixA.b(size at least max(1,contains theldb*n) for column major layout and max(1,ldb*p) for row major layout)p-by-nmatrixB.
- lda
- The leading dimension ofa; at least max(1,m)for column major layout and max(1,.n) for row major layout
- ldb
- The leading dimension ofb; at least max(1,p)for column major layout and max(1,.n) for row major layout
- tola,tolb
- tolaandtolbare the thresholds to determine the effective numerical rank of matrixBand a subblock ofA. Generally, they are set to,tola= max(m,n)*||A||*MACHEPS.tolb= max(p,n)*||B||*MACHEPSThe size oftolaandtolbmay affect the size of backward errors of the decomposition.
- ldu
- The leading dimension of the output arrayu.ifldu≥max(1,m);jobu='U'otherwise.ldu≥1
- ldv
- The leading dimension of the output arrayv.ifldv≥max(1,p);jobv='V'otherwise.ldv≥1
- ldq
- The leading dimension of the output arrayq.ifldq≥max(1,n);jobq='Q'otherwise.ldq≥1
Output Parameters
- a
- Overwritten by the triangular (or trapezoidal) matrixdescribed in the.Descriptionsection
- b
- Overwritten by the triangular matrixdescribed in the.Descriptionsection
- k,l
- On exit,kandlspecify the dimension of subblocks. The sumk+lis equal to effective numerical rank of (A,HB)H.H
- u,v,q
- Arrays:If,jobu='U'u(size max(1,contains the orthogonal/unitary matrixldu*m))U.If,jobu='N'uis not referenced.If,jobv='V'v(size max(1,contains the orthogonal/unitary matrixldv*p))V.If,jobv='N'vis not referenced.If,jobq='Q'q(size max(1,contains the orthogonal/unitary matrixldq*n))Q.If,jobq='N'qis not referenced.
Return Values
This function returns a value
info
.If , the execution is successful.
info
=0If , the
info
= -i
i
-th parameter had an illegal value.