diff liboctave/dbleSVD.h @ 10601:3ce0c530a9c9

implement svd_driver
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 03 May 2010 13:21:35 +0200
parents cbc402e64d83
children 367bfee35ba0
line wrap: on
line diff
--- a/liboctave/dbleSVD.h	Sun May 02 22:05:41 2010 -0700
+++ b/liboctave/dbleSVD.h	Mon May 03 13:21:35 2010 +0200
@@ -42,13 +42,22 @@
       sigma_only
     };
 
+  enum driver
+    {
+      GESVD,
+      GESDD
+    };
+
   SVD (void) : sigma (), left_sm (), right_sm () { }
 
-  SVD (const Matrix& a, type svd_type = SVD::std) { init (a, svd_type); }
+  SVD (const Matrix& a, 
+       type svd_type = SVD::std, driver svd_driver = SVD::GESVD) 
+    { init (a, svd_type, svd_driver); }
 
-  SVD (const Matrix& a, octave_idx_type& info, type svd_type = SVD::std)
+  SVD (const Matrix& a, octave_idx_type& info, 
+       type svd_type = SVD::std, driver svd_driver = SVD::GESVD) 
     {
-      info = init (a, svd_type);
+      info = init (a, svd_type, svd_driver);
     }
 
   SVD (const SVD& a)
@@ -86,7 +95,8 @@
   Matrix left_sm;
   Matrix right_sm;
 
-  octave_idx_type init (const Matrix& a, type svd_type = std);
+  octave_idx_type init (const Matrix& a, 
+                        type svd_type = std, driver svd_driver = GESVD);
 };
 
 #endif