45{
51 float* rwork = NULL;
57 return -1;
58 }
59#ifndef LAPACK_DISABLE_NAN_CHECK
61
63 return -8;
64 }
66 return -10;
67 }
68 }
69#endif
70
74 if( bwork == NULL ) {
76 goto exit_level_0;
77 }
78 }
80 if( rwork == NULL ) {
82 goto exit_level_1;
83 }
84
86 sense, n, a, lda, b, ldb, sdim, alpha, beta,
87 vsl, ldvsl, vsr, ldvsr, rconde, rcondv,
88 &work_query, lwork, rwork, &iwork_query, liwork,
89 bwork );
90 if( info != 0 ) {
91 goto exit_level_2;
92 }
93 liwork = iwork_query;
95
97 if( iwork == NULL ) {
99 goto exit_level_2;
100 }
103 if( work == NULL ) {
105 goto exit_level_3;
106 }
107
109 sense, n, a, lda, b, ldb, sdim, alpha, beta,
110 vsl, ldvsl, vsr, ldvsr, rconde, rcondv, work,
111 lwork, rwork, iwork, liwork, bwork );
112
114exit_level_3:
116exit_level_2:
118exit_level_1:
121 }
122exit_level_0:
125 }
126 return info;
127}
#define lapack_complex_float
#define LAPACK_WORK_MEMORY_ERROR
lapack_int LAPACKE_cggesx_work(int matrix_layout, char jobvsl, char jobvsr, char sort, LAPACK_C_SELECT2 selctg, char sense, lapack_int n, lapack_complex_float *a, lapack_int lda, lapack_complex_float *b, lapack_int ldb, lapack_int *sdim, lapack_complex_float *alpha, lapack_complex_float *beta, lapack_complex_float *vsl, lapack_int ldvsl, lapack_complex_float *vsr, lapack_int ldvsr, float *rconde, float *rcondv, lapack_complex_float *work, lapack_int lwork, float *rwork, lapack_int *iwork, lapack_int liwork, lapack_logical *bwork)
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_cge_nancheck(int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *a, lapack_int lda)