45{
55 return -1;
56 }
57#ifndef LAPACK_DISABLE_NAN_CHECK
59
61 return -7;
62 }
64 return -9;
65 }
66 if( wantq ) {
68 return -13;
69 }
70 }
71 if( wantz ) {
73 return -15;
74 }
75 }
76 }
77#endif
78
80 lda, b, ldb, alpha, beta, q, ldq, z, ldz, m, pl,
81 pr, dif, &work_query, lwork, &iwork_query,
82 liwork );
83 if( info != 0 ) {
84 goto exit_level_0;
85 }
86 liwork = iwork_query;
88
89 if( ijob != 0 ) {
91 if( iwork == NULL ) {
93 goto exit_level_0;
94 }
95 }
98 if( work == NULL ) {
100 goto exit_level_1;
101 }
102
104 lda, b, ldb, alpha, beta, q, ldq, z, ldz, m, pl,
105 pr, dif, work, lwork, iwork, liwork );
106
108exit_level_1:
109 if( ijob != 0 ) {
111 }
112exit_level_0:
115 }
116 return info;
117}
#define lapack_complex_double
#define LAPACK_WORK_MEMORY_ERROR
lapack_int LAPACKE_ztgsen_work(int matrix_layout, lapack_int ijob, lapack_logical wantq, lapack_logical wantz, const lapack_logical *select, lapack_int n, lapack_complex_double *a, lapack_int lda, lapack_complex_double *b, lapack_int ldb, lapack_complex_double *alpha, lapack_complex_double *beta, lapack_complex_double *q, lapack_int ldq, lapack_complex_double *z, lapack_int ldz, lapack_int *m, double *pl, double *pr, double *dif, lapack_complex_double *work, lapack_int lwork, lapack_int *iwork, lapack_int liwork)
int LAPACKE_get_nancheck(void)
#define LAPACKE_malloc(size)
void LAPACKE_xerbla(const char *name, lapack_int info)
lapack_logical LAPACKE_zge_nancheck(int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double *a, lapack_int lda)