@@ -268,34 +268,7 @@ macro_rules! impl_eig_work_c {
268268 }
269269
270270 fn eval( mut self , a: & mut [ Self :: Elem ] ) -> Result <EigOwned <Self :: Elem >> {
271- let lwork = self . work. len( ) . to_i32( ) . unwrap( ) ;
272- let mut info = 0 ;
273- unsafe {
274- $ev(
275- self . jobvl. as_ptr( ) ,
276- self . jobvr. as_ptr( ) ,
277- & self . n,
278- AsPtr :: as_mut_ptr( a) ,
279- & self . n,
280- AsPtr :: as_mut_ptr( & mut self . eigs) ,
281- AsPtr :: as_mut_ptr( self . vc_l. as_deref_mut( ) . unwrap_or( & mut [ ] ) ) ,
282- & self . n,
283- AsPtr :: as_mut_ptr( self . vc_r. as_deref_mut( ) . unwrap_or( & mut [ ] ) ) ,
284- & self . n,
285- AsPtr :: as_mut_ptr( & mut self . work) ,
286- & lwork,
287- AsPtr :: as_mut_ptr( self . rwork. as_mut( ) . unwrap( ) ) ,
288- & mut info,
289- )
290- } ;
291- info. as_lapack_result( ) ?;
292- // Hermite conjugate
293- if let Some ( vl) = self . vc_l. as_mut( ) {
294- for value in vl {
295- let value = unsafe { value. assume_init_mut( ) } ;
296- value. im = -value. im;
297- }
298- }
271+ let _eig_ref = self . calc( a) ?;
299272 Ok ( EigOwned {
300273 eigs: unsafe { self . eigs. assume_init( ) } ,
301274 vl: self . vc_l. map( |v| unsafe { v. assume_init( ) } ) ,
@@ -435,49 +408,7 @@ macro_rules! impl_eig_work_r {
435408 }
436409
437410 fn eval( mut self , a: & mut [ Self :: Elem ] ) -> Result <EigOwned <Self :: Elem >> {
438- let lwork = self . work. len( ) . to_i32( ) . unwrap( ) ;
439- let mut info = 0 ;
440- unsafe {
441- $ev(
442- self . jobvl. as_ptr( ) ,
443- self . jobvr. as_ptr( ) ,
444- & self . n,
445- AsPtr :: as_mut_ptr( a) ,
446- & self . n,
447- AsPtr :: as_mut_ptr( self . eigs_re. as_mut( ) . unwrap( ) ) ,
448- AsPtr :: as_mut_ptr( self . eigs_im. as_mut( ) . unwrap( ) ) ,
449- AsPtr :: as_mut_ptr( self . vr_l. as_deref_mut( ) . unwrap_or( & mut [ ] ) ) ,
450- & self . n,
451- AsPtr :: as_mut_ptr( self . vr_r. as_deref_mut( ) . unwrap_or( & mut [ ] ) ) ,
452- & self . n,
453- AsPtr :: as_mut_ptr( & mut self . work) ,
454- & lwork,
455- & mut info,
456- )
457- } ;
458- info. as_lapack_result( ) ?;
459-
460- let eigs_re = self
461- . eigs_re
462- . as_ref( )
463- . map( |e| unsafe { e. slice_assume_init_ref( ) } )
464- . unwrap( ) ;
465- let eigs_im = self
466- . eigs_im
467- . as_ref( )
468- . map( |e| unsafe { e. slice_assume_init_ref( ) } )
469- . unwrap( ) ;
470- reconstruct_eigs( eigs_re, eigs_im, & mut self . eigs) ;
471-
472- if let Some ( v) = self . vr_l. as_ref( ) {
473- let v = unsafe { v. slice_assume_init_ref( ) } ;
474- reconstruct_eigenvectors( true , eigs_im, v, self . vc_l. as_mut( ) . unwrap( ) ) ;
475- }
476- if let Some ( v) = self . vr_r. as_ref( ) {
477- let v = unsafe { v. slice_assume_init_ref( ) } ;
478- reconstruct_eigenvectors( false , eigs_im, v, self . vc_r. as_mut( ) . unwrap( ) ) ;
479- }
480-
411+ let _eig_ref = self . calc( a) ?;
481412 Ok ( EigOwned {
482413 eigs: unsafe { self . eigs. assume_init( ) } ,
483414 vl: self . vc_l. map( |v| unsafe { v. assume_init( ) } ) ,
0 commit comments