42{
47 float* rwork = NULL;
53 return -1;
54 }
55#ifndef LAPACK_DISABLE_NAN_CHECK
57
59 return -6;
60 }
61 }
62#endif
63
65 m, n, a, lda, vl, vu, il, iu, ns, s, u,
66 ldu, vt, ldvt, &work_query, lwork, rwork, iwork );
67 if( info != 0 ) {
68 goto exit_level_0;
69 }
71
74 if( work == NULL ) {
76 goto exit_level_1;
77 }
79 if( rwork == NULL ) {
81 goto exit_level_0;
82 }
84 if( iwork == NULL ) {
86 goto exit_level_2;
87 }
88
90 m, n, a, lda, vl, vu, il, iu, ns, s, u,
91 ldu, vt, ldvt, work, lwork, rwork, iwork );
92
93 for( i=0; i<12*
MIN(m,n)-1; i++ ) {
94 superb[i] = iwork[i+1];
95 }
96
98exit_level_2:
100exit_level_1:
102exit_level_0:
105 }
106 return info;
107}
#define lapack_complex_float
#define LAPACK_WORK_MEMORY_ERROR
lapack_int LAPACKE_cgesvdx_work(int matrix_layout, char jobu, char jobvt, char range, lapack_int m, lapack_int n, lapack_complex_float *a, lapack_int lda, float vl, float vu, lapack_int il, lapack_int iu, lapack_int *ns, float *s, lapack_complex_float *u, lapack_int ldu, lapack_complex_float *vt, lapack_int ldvt, lapack_complex_float *work, lapack_int lwork, float *rwork, lapack_int *iwork)
int LAPACKE_get_nancheck(void)
#define LAPACKE_malloc(size)
void LAPACKE_xerbla(const char *name, lapack_int info)
lapack_logical LAPACKE_cge_nancheck(int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *a, lapack_int lda)