42{
45
46 LAPACK_cgeev( &jobvl, &jobvr, &n, a, &lda, w, vl, &ldvl, vr, &ldvr,
47 work, &lwork, rwork, &info );
48 if( info < 0 ) {
49 info = info - 1;
50 }
58
59 if( lda < n ) {
60 info = -6;
62 return info;
63 }
64 if( ldvl < 1 || (
LAPACKE_lsame( jobvl,
'v' ) && ldvl < n ) ) {
65 info = -9;
67 return info;
68 }
69 if( ldvr < 1 || (
LAPACKE_lsame( jobvr,
'v' ) && ldvr < n ) ) {
70 info = -11;
72 return info;
73 }
74
75 if( lwork == -1 ) {
76 LAPACK_cgeev( &jobvl, &jobvr, &n, a, &lda_t, w, vl, &ldvl_t, vr,
77 &ldvr_t, work, &lwork, rwork, &info );
78 return (info < 0) ? (info - 1) : info;
79 }
80
83 if( a_t == NULL ) {
85 goto exit_level_0;
86 }
91 if( vl_t == NULL ) {
93 goto exit_level_1;
94 }
95 }
100 if( vr_t == NULL ) {
102 goto exit_level_2;
103 }
104 }
105
107
108 LAPACK_cgeev( &jobvl, &jobvr, &n, a_t, &lda_t, w, vl_t, &ldvl_t, vr_t,
109 &ldvr_t, work, &lwork, rwork, &info );
110 if( info < 0 ) {
111 info = info - 1;
112 }
113
117 }
120 }
121
124 }
125exit_level_2:
128 }
129exit_level_1:
131exit_level_0:
134 }
135 } else {
136 info = -1;
138 }
139 return info;
140}
#define LAPACK_cgeev(...)
#define lapack_complex_float
#define LAPACKE_malloc(size)
#define LAPACK_TRANSPOSE_MEMORY_ERROR
lapack_logical LAPACKE_lsame(char ca, char cb)
void LAPACKE_xerbla(const char *name, lapack_int info)
void LAPACKE_cge_trans(int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)