@@ -96,11 +96,11 @@ impl EigWorkImpl for EigWork<c64> {
96
96
} else {
97
97
( JobEv :: None , JobEv :: None )
98
98
} ;
99
- let mut eigs: Vec < MaybeUninit < c64 > > = vec_uninit ( n as usize ) ;
100
- let mut rwork: Vec < MaybeUninit < f64 > > = vec_uninit ( 2 * n as usize ) ;
99
+ let mut eigs = vec_uninit ( n as usize ) ;
100
+ let mut rwork = vec_uninit ( 2 * n as usize ) ;
101
101
102
- let mut vc_l: Option < Vec < MaybeUninit < c64 > > > = jobvl. then ( || vec_uninit ( ( n * n) as usize ) ) ;
103
- let mut vc_r: Option < Vec < MaybeUninit < c64 > > > = jobvr. then ( || vec_uninit ( ( n * n) as usize ) ) ;
102
+ let mut vc_l = jobvl. then ( || vec_uninit ( ( n * n) as usize ) ) ;
103
+ let mut vc_r = jobvr. then ( || vec_uninit ( ( n * n) as usize ) ) ;
104
104
105
105
// calc work size
106
106
let mut info = 0 ;
@@ -165,9 +165,6 @@ impl EigWorkImpl for EigWork<c64> {
165
165
)
166
166
} ;
167
167
info. as_lapack_result ( ) ?;
168
-
169
- let eigs = unsafe { self . eigs . slice_assume_init_ref ( ) } ;
170
-
171
168
// Hermite conjugate
172
169
if let Some ( vl) = self . vc_l . as_mut ( ) {
173
170
for value in vl {
@@ -176,7 +173,7 @@ impl EigWorkImpl for EigWork<c64> {
176
173
}
177
174
}
178
175
Ok ( EigRef {
179
- eigs,
176
+ eigs : unsafe { self . eigs . slice_assume_init_ref ( ) } ,
180
177
vl : self
181
178
. vc_l
182
179
. as_ref ( )
@@ -210,8 +207,6 @@ impl EigWorkImpl for EigWork<c64> {
210
207
)
211
208
} ;
212
209
info. as_lapack_result ( ) ?;
213
- let eigs = unsafe { self . eigs . assume_init ( ) } ;
214
-
215
210
// Hermite conjugate
216
211
if let Some ( vl) = self . vc_l . as_mut ( ) {
217
212
for value in vl {
@@ -220,7 +215,7 @@ impl EigWorkImpl for EigWork<c64> {
220
215
}
221
216
}
222
217
Ok ( Eig {
223
- eigs,
218
+ eigs : unsafe { self . eigs . assume_init ( ) } ,
224
219
vl : self . vc_l . map ( |v| unsafe { v. assume_init ( ) } ) ,
225
220
vr : self . vc_r . map ( |v| unsafe { v. assume_init ( ) } ) ,
226
221
} )
@@ -240,13 +235,12 @@ impl EigWorkImpl for EigWork<f64> {
240
235
} else {
241
236
( JobEv :: None , JobEv :: None )
242
237
} ;
243
- let mut eigs_re: Vec < MaybeUninit < f64 > > = vec_uninit ( n as usize ) ;
244
- let mut eigs_im: Vec < MaybeUninit < f64 > > = vec_uninit ( n as usize ) ;
245
-
246
- let mut vr_l: Option < Vec < MaybeUninit < f64 > > > = jobvl. then ( || vec_uninit ( ( n * n) as usize ) ) ;
247
- let mut vr_r: Option < Vec < MaybeUninit < f64 > > > = jobvr. then ( || vec_uninit ( ( n * n) as usize ) ) ;
248
- let vc_l: Option < Vec < MaybeUninit < c64 > > > = jobvl. then ( || vec_uninit ( ( n * n) as usize ) ) ;
249
- let vc_r: Option < Vec < MaybeUninit < c64 > > > = jobvr. then ( || vec_uninit ( ( n * n) as usize ) ) ;
238
+ let mut eigs_re = vec_uninit ( n as usize ) ;
239
+ let mut eigs_im = vec_uninit ( n as usize ) ;
240
+ let mut vr_l = jobvl. then ( || vec_uninit ( ( n * n) as usize ) ) ;
241
+ let mut vr_r = jobvr. then ( || vec_uninit ( ( n * n) as usize ) ) ;
242
+ let vc_l = jobvl. then ( || vec_uninit ( ( n * n) as usize ) ) ;
243
+ let vc_r = jobvr. then ( || vec_uninit ( ( n * n) as usize ) ) ;
250
244
251
245
// calc work size
252
246
let mut info = 0 ;
0 commit comments