40{
43
44 LAPACK_dgeev( &jobvl, &jobvr, &
n, a, &lda, wr, wi, vl, &ldvl, vr, &ldvr,
45 work, &lwork, &info );
46 if( info < 0 ) {
47 info = info - 1;
48 }
53 double* a_t = NULL;
54 double* vl_t = NULL;
55 double* vr_t = NULL;
56
58 info = -6;
60 return info;
61 }
63 info = -10;
65 return info;
66 }
68 info = -12;
70 return info;
71 }
72
73 if( lwork == -1 ) {
74 LAPACK_dgeev( &jobvl, &jobvr, &
n, a, &lda_t, wr, wi, vl, &ldvl_t,
75 vr, &ldvr_t, work, &lwork, &info );
76 return (info < 0) ? (info - 1) : info;
77 }
78
80 if( a_t == NULL ) {
82 goto exit_level_0;
83 }
85 vl_t = (double*)
87 if( vl_t == NULL ) {
89 goto exit_level_1;
90 }
91 }
93 vr_t = (double*)
95 if( vr_t == NULL ) {
97 goto exit_level_2;
98 }
99 }
100
102
103 LAPACK_dgeev( &jobvl, &jobvr, &
n, a_t, &lda_t, wr, wi, vl_t, &ldvl_t,
104 vr_t, &ldvr_t, work, &lwork, &info );
105 if( info < 0 ) {
106 info = info - 1;
107 }
108
112 }
115 }
116
119 }
120exit_level_2:
123 }
124exit_level_1:
126exit_level_0:
129 }
130 } else {
131 info = -1;
133 }
134 return info;
135}
#define LAPACK_dgeev(...)
#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_dge_trans(int matrix_layout, lapack_int m, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)