changeset 20873:9fbacc123a91

2015 Code Sprint: svd.cc: use ovl ().
author Rik <rik@octave.org>
date Sat, 12 Dec 2015 10:28:07 -0800
parents ead410040418
children d112e04d1271
files libinterp/corefcn/svd.cc
diffstat 1 files changed, 24 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/svd.cc	Sat Dec 12 13:22:50 2015 -0500
+++ b/libinterp/corefcn/svd.cc	Sat Dec 12 10:28:07 2015 -0800
@@ -154,15 +154,15 @@
           switch (type)
             {
             case SVD::std:
-              retval(2) = FloatDiagMatrix (nc, nc, 1.0f);
-              retval(1) = FloatMatrix (nr, nc);
-              retval(0) = FloatDiagMatrix (nr, nr, 1.0f);
+              retval = ovl (FloatDiagMatrix (nr, nr, 1.0f),
+                            FloatMatrix (nr, nc),
+                            FloatDiagMatrix (nc, nc, 1.0f));
               break;
 
             case SVD::economy:
-              retval(2) = FloatDiagMatrix (0, nc, 1.0f);
-              retval(1) = FloatMatrix (0, 0);
-              retval(0) = FloatDiagMatrix (nr, 0, 1.0f);
+              retval = ovl (FloatDiagMatrix (nr, 0, 1.0f),
+                            FloatMatrix (0, 0),
+                            FloatDiagMatrix (0, nc, 1.0f));
               break;
 
             case SVD::sigma_only: default:
@@ -175,15 +175,15 @@
           switch (type)
             {
             case SVD::std:
-              retval(2) = DiagMatrix (nc, nc, 1.0);
-              retval(1) = Matrix (nr, nc);
-              retval(0) = DiagMatrix (nr, nr, 1.0);
+              retval = ovl (DiagMatrix (nr, nr, 1.0),
+                            Matrix (nr, nc),
+                            DiagMatrix (nc, nc, 1.0));
               break;
 
             case SVD::economy:
-              retval(2) = DiagMatrix (0, nc, 1.0);
-              retval(1) = Matrix (0, 0);
-              retval(0) = DiagMatrix (nr, 0, 1.0);
+              retval = ovl (DiagMatrix (nr, 0, 1.0),
+                            Matrix (0, 0),
+                            DiagMatrix (0, nc, 1.0));
               break;
 
             case SVD::sigma_only: default:
@@ -210,11 +210,9 @@
               if (nargout == 0 || nargout == 1)
                 retval(0) = sigma.extract_diag ();
               else
-                {
-                  retval(2) = result.right_singular_matrix ();
-                  retval(1) = sigma;
-                  retval(0) = result.left_singular_matrix ();
-                }
+                retval = ovl (result.left_singular_matrix (),
+                              sigma,
+                              result.right_singular_matrix ());
             }
           else if (arg.is_complex_type ())
             {
@@ -230,11 +228,9 @@
               if (nargout == 0 || nargout == 1)
                 retval(0) = sigma.extract_diag ();
               else
-                {
-                  retval(2) = result.right_singular_matrix ();
-                  retval(1) = sigma;
-                  retval(0) = result.left_singular_matrix ();
-                }
+                retval = ovl (result.left_singular_matrix (),
+                              sigma,
+                              result.right_singular_matrix ());
             }
         }
       else
@@ -253,11 +249,9 @@
               if (nargout == 0 || nargout == 1)
                 retval(0) = sigma.extract_diag ();
               else
-                {
-                  retval(2) = result.right_singular_matrix ();
-                  retval(1) = sigma;
-                  retval(0) = result.left_singular_matrix ();
-                }
+                retval = ovl (result.left_singular_matrix (),
+                              sigma,
+                              result.right_singular_matrix ());
             }
           else if (arg.is_complex_type ())
             {
@@ -273,11 +267,9 @@
               if (nargout == 0 || nargout == 1)
                 retval(0) = sigma.extract_diag ();
               else
-                {
-                  retval(2) = result.right_singular_matrix ();
-                  retval(1) = sigma;
-                  retval(0) = result.left_singular_matrix ();
-                }
+                retval = ovl (result.left_singular_matrix (),
+                              sigma,
+                              result.right_singular_matrix ());
             }
           else
             gripe_wrong_type_arg ("svd", arg);