43{
46
47 LAPACK_cgesvdq( &joba, &jobp, &jobr, &jobu, &jobv, &m, &n, a, &lda, s, u, &ldu, v, &ldv,
48 numrank, iwork, &liwork, cwork, &lcwork, rwork, &lrwork, &info );
49 if( info < 0 ) {
50 info = info - 1;
51 }
65
66 if( lda < n ) {
67 info = -9;
69 return info;
70 }
71 if( ldu < ncols_u ) {
72 info = -12;
74 return info;
75 }
76 if( ldv < n ) {
77 info = -14;
79 return info;
80 }
81
82 if( lcwork == -1 ) {
83 LAPACK_cgesvdq( &joba, &jobp, &jobr, &jobu, &jobv, &m, &n, a, &lda_t,
84 s, u, &ldu_t, v, &ldv_t, numrank, iwork, &liwork,
85 cwork, &lcwork, rwork, &lrwork, &info );
86 return (info < 0) ? (info - 1) : info;
87 }
88
90 if( a_t == NULL ) {
92 goto exit_level_0;
93 }
97 if( u_t == NULL ) {
99 goto exit_level_1;
100 }
101 }
105 if( v_t == NULL ) {
107 goto exit_level_2;
108 }
109 }
110
112
113 LAPACK_cgesvdq( &joba, &jobp, &jobr, &jobu, &jobv, &m, &n, a, &lda_t,
114 s, u, &ldu_t, v, &ldv_t, numrank, iwork, &liwork,
115 cwork, &lcwork, rwork, &lrwork, &info );
116 if( info < 0 ) {
117 info = info - 1;
118 }
119
123 u, ldu );
124 }
127 ldv );
128 }
129
132 }
133exit_level_2:
136 }
137exit_level_1:
139exit_level_0:
142 }
143 } else {
144 info = -1;
146 }
147 return info;
148}
#define LAPACK_cgesvdq(...)
#define lapack_complex_float
#define LAPACKE_malloc(size)
#define LAPACK_TRANSPOSE_MEMORY_ERROR
lapack_logical LAPACKE_lsame(char ca, char cb)
void LAPACKE_xerbla(const char *name, lapack_int info)
void LAPACKE_cge_trans(int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)