40{
72 7) ) ) ) ) );
74 double* work = NULL;
78 return -1;
79 }
80#ifndef LAPACK_DISABLE_NAN_CHECK
82
84 return -10;
85 }
86 }
87#endif
88
90 if( iwork == NULL ) {
92 goto exit_level_0;
93 }
94 lwork =
MAX3( lwork, 7, 2*m+
n );
95 {
99 if( !want_u && !want_v && !want_sce ) lwork =
MAX( lwork, 4*
n+1 );
100 if( !want_u && !want_v && want_sce ) lwork =
MAX( lwork,
n*
n+4*
n );
101 if( !want_u && want_v ) lwork =
MAX( lwork, 4*
n+1 );
102 if( want_u && !want_v ) lwork =
MAX( lwork, 4*
n+1 );
105 }
107 if( work == NULL ) {
109 goto exit_level_1;
110 }
111
113 jobp, m,
n, a, lda, sva, u, ldu, v, ldv, work,
114 lwork, iwork );
115
116 for( i=0; i<7; i++ ) {
117 stat[i] = work[i];
118 }
119 for( i=0; i<3; i++ ) {
120 istat[i] = iwork[i];
121 }
122
124exit_level_1:
126exit_level_0:
129 }
130 return info;
131}
#define LAPACK_WORK_MEMORY_ERROR
lapack_int LAPACKE_dgejsv_work(int matrix_layout, char joba, char jobu, char jobv, char jobr, char jobt, char jobp, lapack_int m, lapack_int n, double *a, lapack_int lda, double *sva, double *u, lapack_int ldu, double *v, lapack_int ldv, double *work, lapack_int lwork, lapack_int *iwork)
int LAPACKE_get_nancheck(void)
#define LAPACKE_malloc(size)
lapack_logical LAPACKE_lsame(char ca, char cb)
void LAPACKE_xerbla(const char *name, lapack_int info)
lapack_logical LAPACKE_dge_nancheck(int matrix_layout, lapack_int m, lapack_int n, const double *a, lapack_int lda)