43{
48 double* work = NULL;
49 double work_query;
52 return -1;
53 }
54#ifndef LAPACK_DISABLE_NAN_CHECK
56
58 return -7;
59 }
61 return -9;
62 }
63 }
64#endif
65
70 if( bwork == NULL ) {
72 goto exit_level_0;
73 }
74 }
78 if( iwork == NULL ) {
80 goto exit_level_1;
81 }
82 }
83
85 lda, b, ldb, alphar, alphai, beta, vl, ldvl, vr,
86 ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm,
87 rconde, rcondv, &work_query, lwork, iwork,
88 bwork );
89 if( info != 0 ) {
90 goto exit_level_2;
91 }
93
95 if( work == NULL ) {
97 goto exit_level_2;
98 }
99
101 lda, b, ldb, alphar, alphai, beta, vl, ldvl, vr,
102 ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm,
103 rconde, rcondv, work, lwork, iwork, bwork );
104
106exit_level_2:
110 }
111exit_level_1:
115 }
116exit_level_0:
119 }
120 return info;
121}
#define LAPACK_WORK_MEMORY_ERROR
int LAPACKE_get_nancheck(void)
lapack_int LAPACKE_dggevx_work(int matrix_layout, char balanc, char jobvl, char jobvr, char sense, lapack_int n, double *a, lapack_int lda, double *b, lapack_int ldb, double *alphar, double *alphai, double *beta, double *vl, lapack_int ldvl, double *vr, lapack_int ldvr, lapack_int *ilo, lapack_int *ihi, double *lscale, double *rscale, double *abnrm, double *bbnrm, double *rconde, double *rcondv, double *work, lapack_int lwork, lapack_int *iwork, lapack_logical *bwork)
#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)