@@ -15,6 +15,38 @@ impl<A, S, Su, Svt, Ss> SVD<ArrayBase<Su, Ix2>, ArrayBase<Ss, Ix1>, ArrayBase<Sv
1515 Su : DataOwned < Elem = A > ,
1616 Svt : DataOwned < Elem = A > ,
1717 Ss : DataOwned < Elem = A :: Real >
18+ {
19+ fn svd ( mut self ,
20+ calc_u : bool ,
21+ calc_vt : bool )
22+ -> Result < ( Option < ArrayBase < Su , Ix2 > > , ArrayBase < Ss , Ix1 > , Option < ArrayBase < Svt , Ix2 > > ) > {
23+ ( & mut self ) . svd ( calc_u, calc_vt)
24+ }
25+ }
26+
27+ impl < ' a , A , S , Su , Svt , Ss > SVD < ArrayBase < Su , Ix2 > , ArrayBase < Ss , Ix1 > , ArrayBase < Svt , Ix2 > > for & ' a ArrayBase < S , Ix2 >
28+ where A : LapackScalar + Clone ,
29+ S : Data < Elem = A > ,
30+ Su : DataOwned < Elem = A > ,
31+ Svt : DataOwned < Elem = A > ,
32+ Ss : DataOwned < Elem = A :: Real >
33+ {
34+ fn svd ( self ,
35+ calc_u : bool ,
36+ calc_vt : bool )
37+ -> Result < ( Option < ArrayBase < Su , Ix2 > > , ArrayBase < Ss , Ix1 > , Option < ArrayBase < Svt , Ix2 > > ) > {
38+ let a = self . to_owned ( ) ;
39+ a. svd ( calc_u, calc_vt)
40+ }
41+ }
42+
43+ impl < ' a , A , S , Su , Svt , Ss > SVD < ArrayBase < Su , Ix2 > , ArrayBase < Ss , Ix1 > , ArrayBase < Svt , Ix2 > >
44+ for & ' a mut ArrayBase < S , Ix2 >
45+ where A : LapackScalar ,
46+ S : DataMut < Elem = A > ,
47+ Su : DataOwned < Elem = A > ,
48+ Svt : DataOwned < Elem = A > ,
49+ Ss : DataOwned < Elem = A :: Real >
1850{
1951 fn svd ( mut self ,
2052 calc_u : bool ,
0 commit comments