@@ -3,7 +3,7 @@ use cauchy::*;
33use num_traits:: { ToPrimitive , Zero } ;
44
55pub trait SVDDC_ : Scalar {
6- fn svddc ( l : MatrixLayout , jobz : UVTFlag , a : & mut [ Self ] ) -> Result < SVDOutput < Self > > ;
6+ fn svddc ( l : MatrixLayout , jobz : JobSvd , a : & mut [ Self ] ) -> Result < SVDOutput < Self > > ;
77}
88
99macro_rules! impl_svddc {
@@ -15,33 +15,33 @@ macro_rules! impl_svddc {
1515 } ;
1616 ( @body, $scalar: ty, $gesdd: path, $( $rwork_ident: ident) ,* ) => {
1717 impl SVDDC_ for $scalar {
18- fn svddc( l: MatrixLayout , jobz: UVTFlag , a: & mut [ Self ] , ) -> Result <SVDOutput <Self >> {
18+ fn svddc( l: MatrixLayout , jobz: JobSvd , a: & mut [ Self ] , ) -> Result <SVDOutput <Self >> {
1919 let m = l. lda( ) ;
2020 let n = l. len( ) ;
2121 let k = m. min( n) ;
2222 let mut s = unsafe { vec_uninit( k as usize ) } ;
2323
2424 let ( u_col, vt_row) = match jobz {
25- UVTFlag :: Full | UVTFlag :: None => ( m, n) ,
26- UVTFlag :: Some => ( k, k) ,
25+ JobSvd :: All | JobSvd :: None => ( m, n) ,
26+ JobSvd :: Some => ( k, k) ,
2727 } ;
2828 let ( mut u, mut vt) = match jobz {
29- UVTFlag :: Full => (
29+ JobSvd :: All => (
3030 Some ( unsafe { vec_uninit( ( m * m) as usize ) } ) ,
3131 Some ( unsafe { vec_uninit( ( n * n) as usize ) } ) ,
3232 ) ,
33- UVTFlag :: Some => (
33+ JobSvd :: Some => (
3434 Some ( unsafe { vec_uninit( ( m * u_col) as usize ) } ) ,
3535 Some ( unsafe { vec_uninit( ( n * vt_row) as usize ) } ) ,
3636 ) ,
37- UVTFlag :: None => ( None , None ) ,
37+ JobSvd :: None => ( None , None ) ,
3838 } ;
3939
4040 $( // for complex only
4141 let mx = n. max( m) as usize ;
4242 let mn = n. min( m) as usize ;
4343 let lrwork = match jobz {
44- UVTFlag :: None => 7 * mn,
44+ JobSvd :: None => 7 * mn,
4545 _ => std:: cmp:: max( 5 * mn* mn + 5 * mn, 2 * mx* mn + 2 * mn* mn + mn) ,
4646 } ;
4747 let mut $rwork_ident: Vec <MaybeUninit <Self :: Real >> = unsafe { vec_uninit( lrwork) } ;
0 commit comments