@@ -15,6 +15,38 @@ impl<A, S, Su, Svt, Ss> SVD<ArrayBase<Su, Ix2>, ArrayBase<Ss, Ix1>, ArrayBase<Sv
15
15
Su : DataOwned < Elem = A > ,
16
16
Svt : DataOwned < Elem = A > ,
17
17
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 >
18
50
{
19
51
fn svd ( mut self ,
20
52
calc_u : bool ,
0 commit comments