changeset 20790:c2d9556d51d0

eliminate return statements after calls to print_usage * __delaunayn__.cc, __eigs__.cc, __glpk__.cc, __magick_read__.cc, __osmesa_print__.cc, __voronoi__.cc, amd.cc, audiodevinfo.cc, audioread.cc, chol.cc, colamd.cc, convhulln.cc, dmperm.cc, fftw.cc, qr.cc, symbfact.cc, symrcm.cc: Eliminate return statements after calls to print_usage.
author John W. Eaton <jwe@octave.org>
date Thu, 03 Dec 2015 12:15:38 -0500
parents 4c15057e1bc6
children f7084eae3318
files libinterp/dldfcn/__delaunayn__.cc libinterp/dldfcn/__eigs__.cc libinterp/dldfcn/__glpk__.cc libinterp/dldfcn/__magick_read__.cc libinterp/dldfcn/__osmesa_print__.cc libinterp/dldfcn/__voronoi__.cc libinterp/dldfcn/amd.cc libinterp/dldfcn/audiodevinfo.cc libinterp/dldfcn/audioread.cc libinterp/dldfcn/chol.cc libinterp/dldfcn/colamd.cc libinterp/dldfcn/convhulln.cc libinterp/dldfcn/dmperm.cc libinterp/dldfcn/fftw.cc libinterp/dldfcn/qr.cc libinterp/dldfcn/symbfact.cc libinterp/dldfcn/symrcm.cc
diffstat 17 files changed, 556 insertions(+), 758 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/dldfcn/__delaunayn__.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/__delaunayn__.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -99,10 +99,7 @@
 
   int nargin = args.length ();
   if (nargin < 1 || nargin > 2)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   Matrix p (args(0).matrix_value ());
   const octave_idx_type dim = p.columns ();
--- a/libinterp/dldfcn/__eigs__.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/__eigs__.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -196,8 +196,9 @@
 
   if (nargin == 0)
     print_usage ();
-  else if (args(0).is_function_handle () || args(0).is_inline_function ()
-           || args(0).is_string ())
+
+  if (args(0).is_function_handle () || args(0).is_inline_function ()
+      || args(0).is_string ())
     {
       if (args(0).is_string ())
         {
--- a/libinterp/dldfcn/__glpk__.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/__glpk__.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -349,10 +349,7 @@
   int nrhs = args.length ();
 
   if (nrhs != 9)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   //-- 1nd Input. A column array containing the objective function
   //--            coefficients.
--- a/libinterp/dldfcn/__magick_read__.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/__magick_read__.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -762,10 +762,7 @@
   maybe_initialize_magick ();
 
   if (args.length () != 2 || ! args(0).is_string ())
-    {
-      print_usage ();
-      return output;
-    }
+    print_usage ();
 
   const octave_scalar_map options = args(1).xscalar_map_value ("__magick_read__: OPTIONS must be a struct");
 
@@ -1414,10 +1411,8 @@
   maybe_initialize_magick ();
 
   if (args.length () != 5 || ! args(0).is_string () || ! args(1).is_string ())
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
+
   const std::string filename = args(0).string_value ();
   const std::string ext = args(1).string_value ();
 
@@ -1595,10 +1590,8 @@
   maybe_initialize_magick ();
 
   if (args.length () < 1 || ! args(0).is_string ())
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
+
   const std::string filename = args(0).string_value ();
   int idx;
   if (args.length () > 1)
@@ -1818,10 +1811,8 @@
   maybe_initialize_magick ();
 
   if (args.length () < 1 || ! args(0).is_string ())
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
+
   const std::string filename = args(0).string_value ();
 
   std::vector<Magick::Image> imvec;
@@ -2267,10 +2258,8 @@
   gripe_disabled_feature ("imformats", "Image IO");
 #else
   if (args.length () != 1 || ! args(0).is_map ())
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
+
   octave_map formats = args(0).map_value ();
 
   maybe_initialize_magick ();
--- a/libinterp/dldfcn/__osmesa_print__.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/__osmesa_print__.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -96,10 +96,7 @@
   int nargin = args.length ();
 
   if (! (nargin == 1 || nargin == 3))
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   if (nargin == 3)
     {
--- a/libinterp/dldfcn/__voronoi__.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/__voronoi__.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -95,10 +95,7 @@
 
   int nargin = args.length ();
   if (nargin < 2 || nargin > 3)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   Matrix points = args(1).matrix_value ();
   const octave_idx_type dim = points.columns ();
--- a/libinterp/dldfcn/amd.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/amd.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -91,102 +91,100 @@
 
   if (nargin < 1 || nargin > 2)
     print_usage ();
-  else
+
+  octave_idx_type n_row, n_col;
+  const octave_idx_type *ridx, *cidx;
+  SparseMatrix sm;
+  SparseComplexMatrix scm;
+
+  if (args(0).is_sparse_type ())
     {
-      octave_idx_type n_row, n_col;
-      const octave_idx_type *ridx, *cidx;
-      SparseMatrix sm;
-      SparseComplexMatrix scm;
-
-      if (args(0).is_sparse_type ())
+      if (args(0).is_complex_type ())
         {
-          if (args(0).is_complex_type ())
-            {
-              scm = args(0).sparse_complex_matrix_value ();
-              n_row = scm.rows ();
-              n_col = scm.cols ();
-              ridx = scm.xridx ();
-              cidx = scm.xcidx ();
-            }
-          else
-            {
-              sm = args(0).sparse_matrix_value ();
-              n_row = sm.rows ();
-              n_col = sm.cols ();
-              ridx = sm.xridx ();
-              cidx = sm.xcidx ();
-            }
+          scm = args(0).sparse_complex_matrix_value ();
+          n_row = scm.rows ();
+          n_col = scm.cols ();
+          ridx = scm.xridx ();
+          cidx = scm.xcidx ();
         }
       else
         {
-          if (args(0).is_complex_type ())
-            sm = SparseMatrix (real (args(0).complex_matrix_value ()));
-          else
-            sm = SparseMatrix (args(0).matrix_value ());
-
+          sm = args(0).sparse_matrix_value ();
           n_row = sm.rows ();
           n_col = sm.cols ();
           ridx = sm.xridx ();
           cidx = sm.xcidx ();
         }
-
-      if (n_row != n_col)
-        error ("amd: matrix S must be square");
+    }
+  else
+    {
+      if (args(0).is_complex_type ())
+        sm = SparseMatrix (real (args(0).complex_matrix_value ()));
+      else
+        sm = SparseMatrix (args(0).matrix_value ());
 
-      OCTAVE_LOCAL_BUFFER (double, Control, AMD_CONTROL);
-      AMD_NAME (_defaults) (Control) ;
-      if (nargin > 1)
-        {
-          octave_scalar_map arg1 = args(1).xscalar_map_value ("amd: OPTS argument must be a scalar structure");
+      n_row = sm.rows ();
+      n_col = sm.cols ();
+      ridx = sm.xridx ();
+      cidx = sm.xcidx ();
+    }
 
-          octave_value tmp;
+  if (n_row != n_col)
+    error ("amd: matrix S must be square");
 
-          tmp = arg1.getfield ("dense");
-          if (tmp.is_defined ())
-            Control[AMD_DENSE] = tmp.double_value ();
+  OCTAVE_LOCAL_BUFFER (double, Control, AMD_CONTROL);
+  AMD_NAME (_defaults) (Control) ;
+  if (nargin > 1)
+    {
+      octave_scalar_map arg1 = args(1).xscalar_map_value ("amd: OPTS argument must be a scalar structure");
+
+      octave_value tmp;
 
-          tmp = arg1.getfield ("aggressive");
-          if (tmp.is_defined ())
-            Control[AMD_AGGRESSIVE] = tmp.double_value ();
-        }
+      tmp = arg1.getfield ("dense");
+      if (tmp.is_defined ())
+        Control[AMD_DENSE] = tmp.double_value ();
 
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, P, n_col);
-      Matrix xinfo (AMD_INFO, 1);
-      double *Info = xinfo.fortran_vec ();
+      tmp = arg1.getfield ("aggressive");
+      if (tmp.is_defined ())
+        Control[AMD_AGGRESSIVE] = tmp.double_value ();
+    }
 
-      // FIXME: how can we manage the memory allocation of amd
-      //        in a cleaner manner?
-      SUITESPARSE_ASSIGN_FPTR (malloc_func, amd_malloc, malloc);
-      SUITESPARSE_ASSIGN_FPTR (free_func, amd_free, free);
-      SUITESPARSE_ASSIGN_FPTR (calloc_func, amd_calloc, calloc);
-      SUITESPARSE_ASSIGN_FPTR (realloc_func, amd_realloc, realloc);
-      SUITESPARSE_ASSIGN_FPTR (printf_func, amd_printf, printf);
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, P, n_col);
+  Matrix xinfo (AMD_INFO, 1);
+  double *Info = xinfo.fortran_vec ();
 
-      octave_idx_type result = AMD_NAME (_order) (n_col, cidx, ridx, P,
-                                                  Control, Info);
+  // FIXME: how can we manage the memory allocation of amd
+  //        in a cleaner manner?
+  SUITESPARSE_ASSIGN_FPTR (malloc_func, amd_malloc, malloc);
+  SUITESPARSE_ASSIGN_FPTR (free_func, amd_free, free);
+  SUITESPARSE_ASSIGN_FPTR (calloc_func, amd_calloc, calloc);
+  SUITESPARSE_ASSIGN_FPTR (realloc_func, amd_realloc, realloc);
+  SUITESPARSE_ASSIGN_FPTR (printf_func, amd_printf, printf);
 
-      switch (result)
-        {
-        case AMD_OUT_OF_MEMORY:
-          error ("amd: out of memory");
-          break;
+  octave_idx_type result = AMD_NAME (_order) (n_col, cidx, ridx, P,
+                                              Control, Info);
 
-        case AMD_INVALID:
-          error ("amd: matrix S is corrupted");
-          break;
+  switch (result)
+    {
+    case AMD_OUT_OF_MEMORY:
+      error ("amd: out of memory");
+      break;
+
+    case AMD_INVALID:
+      error ("amd: matrix S is corrupted");
+      break;
 
-        default:
-          {
-            if (nargout > 1)
-              retval(1) = xinfo;
+    default:
+      {
+        if (nargout > 1)
+          retval(1) = xinfo;
 
-            Matrix Pout (1, n_col);
-            for (octave_idx_type i = 0; i < n_col; i++)
-              Pout.xelem (i) = P[i] + 1;
+        Matrix Pout (1, n_col);
+        for (octave_idx_type i = 0; i < n_col; i++)
+          Pout.xelem (i) = P[i] + 1;
 
-            retval(0) = Pout;
-          }
-        }
+        retval(0) = Pout;
+      }
     }
 #else
 
--- a/libinterp/dldfcn/audiodevinfo.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/audiodevinfo.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -2007,10 +2007,7 @@
   audiorecorder *recorder = get_recorder (args(0));
 
   if (! recorder)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   retval = recorder->getaudiodata ();
 
@@ -2038,10 +2035,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_channels ();
     }
@@ -2070,10 +2064,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_fs ();
     }
@@ -2102,10 +2093,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_id ();
     }
@@ -2134,10 +2122,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_nbits ();
     }
@@ -2166,10 +2151,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_sample_number ();
     }
@@ -2198,10 +2180,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_tag ();
     }
@@ -2230,10 +2209,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_total_samples ();
     }
@@ -2262,10 +2238,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->get_userdata ();
     }
@@ -2294,10 +2267,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = recorder->isrecording () ? true : false;
     }
@@ -2326,10 +2296,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       recorder->pause ();
     }
@@ -2356,10 +2323,7 @@
   audiorecorder *recorder = get_recorder (args(0));
 
   if (! recorder)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   recorder->recordblocking (args(1).float_value ());
 
@@ -2386,10 +2350,7 @@
   audiorecorder *recorder = get_recorder (args(0));
 
   if (! recorder)
-    {
       print_usage ();
-      return retval;
-    }
 
   if (args.length () == 1)
     recorder->record ();
@@ -2425,10 +2386,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       recorder->resume ();
     }
@@ -2457,10 +2415,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       recorder->set_fs (args(1).int_value ());
     }
@@ -2489,10 +2444,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       recorder->set_tag (args(1).char_matrix_value ());
     }
@@ -2521,10 +2473,7 @@
       audiorecorder *recorder = get_recorder (args(0));
 
       if (! recorder)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       recorder->set_userdata (args(1));
     }
@@ -2551,10 +2500,7 @@
   audiorecorder *recorder = get_recorder (args(0));
 
   if (! recorder)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   recorder->stop ();
 
@@ -2582,18 +2528,12 @@
   int nargin = args.length ();
 
   if (nargin < 2 || nargin > 4)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   audioplayer* recorder = new audioplayer ();
 
   if (! recorder)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   bool is_function = (args(0).is_string () || args(0).is_function_handle ()
                       || args(0).is_inline_function ());
@@ -2667,10 +2607,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_channels ();
     }
@@ -2699,10 +2636,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_fs ();
     }
@@ -2731,10 +2665,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_id ();
     }
@@ -2763,10 +2694,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_nbits ();
     }
@@ -2795,10 +2723,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_sample_number ();
     }
@@ -2827,10 +2752,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_tag ();
     }
@@ -2859,10 +2781,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_total_samples ();
     }
@@ -2891,10 +2810,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->get_userdata ();
     }
@@ -2923,10 +2839,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       retval = player->isplaying () ? true : false;
     }
@@ -2955,10 +2868,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->pause ();
     }
@@ -2987,10 +2897,7 @@
   audioplayer *player = get_player (args(0));
 
   if (! player)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   if (args.length () == 1)
     player->playblocking ();
@@ -3055,10 +2962,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->play ();
     }
@@ -3123,10 +3027,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->resume ();
     }
@@ -3155,10 +3056,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->set_fs (args(1).int_value ());
     }
@@ -3187,10 +3085,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->set_tag (args(1).char_matrix_value ());
     }
@@ -3219,10 +3114,7 @@
       audioplayer *player = get_player (args(0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->set_userdata (args(1));
     }
@@ -3251,10 +3143,7 @@
       audioplayer *player = get_player (args (0));
 
       if (! player)
-        {
-          print_usage ();
-          return retval;
-        }
+        print_usage ();
 
       player->stop ();
     }
--- a/libinterp/dldfcn/audioread.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/audioread.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -77,10 +77,7 @@
   int nargin = args.length ();
 
   if (nargin < 1 || nargin > 3)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   std::string filename = args(0).string_value ();
 
@@ -285,10 +282,7 @@
   int nargin = args.length ();
 
   if (nargin < 3)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   std::string filename = args(0).string_value ();
 
@@ -473,10 +467,7 @@
 #ifdef HAVE_SNDFILE
 
   if (args.length () != 1)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   std::string filename = args(0).string_value ();
 
--- a/libinterp/dldfcn/chol.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/chol.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -154,10 +154,7 @@
 
   if (nargin < 1 || nargin > 3 || nargout > 3
       || (! args(0).is_sparse_type () && nargout > 2))
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   int n = 1;
   while (n < nargin)
@@ -355,104 +352,102 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1)
+  if (nargin != 1)
+    print_usage ();
+
+  octave_value arg = args(0);
+
+  octave_idx_type nr = arg.rows ();
+  octave_idx_type nc = arg.columns ();
+
+  if (nr == 0 || nc == 0)
+    retval = Matrix ();
+  else
     {
-      octave_value arg = args(0);
+      if (arg.is_sparse_type ())
+        {
+          octave_idx_type info;
+
+          if (arg.is_real_type ())
+            {
+              SparseMatrix m = arg.sparse_matrix_value ();
+
+              SparseCHOL chol (m, info);
+
+              if (info == 0)
+                retval = chol.inverse ();
+              else
+                error ("cholinv: A must be positive definite");
+            }
+          else if (arg.is_complex_type ())
+            {
+              SparseComplexMatrix m = arg.sparse_complex_matrix_value ();
+
+              SparseComplexCHOL chol (m, info);
 
-      octave_idx_type nr = arg.rows ();
-      octave_idx_type nc = arg.columns ();
+              if (info == 0)
+                retval = chol.inverse ();
+              else
+                error ("cholinv: A must be positive definite");
+            }
+          else
+            gripe_wrong_type_arg ("cholinv", arg);
+        }
+      else if (arg.is_single_type ())
+        {
+          if (arg.is_real_type ())
+            {
+              FloatMatrix m = arg.float_matrix_value ();
 
-      if (nr == 0 || nc == 0)
-        retval = Matrix ();
+              octave_idx_type info;
+              FloatCHOL chol (m, info);
+              if (info == 0)
+                retval = chol.inverse ();
+              else
+                error ("cholinv: A must be positive definite");
+            }
+          else if (arg.is_complex_type ())
+            {
+              FloatComplexMatrix m = arg.float_complex_matrix_value ();
+
+              octave_idx_type info;
+              FloatComplexCHOL chol (m, info);
+              if (info == 0)
+                retval = chol.inverse ();
+              else
+                error ("cholinv: A must be positive definite");
+            }
+          else
+            gripe_wrong_type_arg ("chol", arg);
+        }
       else
         {
-          if (arg.is_sparse_type ())
+          if (arg.is_real_type ())
             {
-              octave_idx_type info;
-
-              if (arg.is_real_type ())
-                {
-                  SparseMatrix m = arg.sparse_matrix_value ();
-
-                  SparseCHOL chol (m, info);
+              Matrix m = arg.matrix_value ();
 
-                  if (info == 0)
-                    retval = chol.inverse ();
-                  else
-                    error ("cholinv: A must be positive definite");
-                }
-              else if (arg.is_complex_type ())
-                {
-                  SparseComplexMatrix m = arg.sparse_complex_matrix_value ();
-
-                  SparseComplexCHOL chol (m, info);
-
-                  if (info == 0)
-                    retval = chol.inverse ();
-                  else
-                    error ("cholinv: A must be positive definite");
-                }
+              octave_idx_type info;
+              CHOL chol (m, info);
+              if (info == 0)
+                retval = chol.inverse ();
               else
-                gripe_wrong_type_arg ("cholinv", arg);
+                error ("cholinv: A must be positive definite");
             }
-          else if (arg.is_single_type ())
+          else if (arg.is_complex_type ())
             {
-              if (arg.is_real_type ())
-                {
-                  FloatMatrix m = arg.float_matrix_value ();
+              ComplexMatrix m = arg.complex_matrix_value ();
 
-                  octave_idx_type info;
-                  FloatCHOL chol (m, info);
-                  if (info == 0)
-                    retval = chol.inverse ();
-                  else
-                    error ("cholinv: A must be positive definite");
-                }
-              else if (arg.is_complex_type ())
-                {
-                  FloatComplexMatrix m = arg.float_complex_matrix_value ();
-
-                  octave_idx_type info;
-                  FloatComplexCHOL chol (m, info);
-                  if (info == 0)
-                    retval = chol.inverse ();
-                  else
-                    error ("cholinv: A must be positive definite");
-                }
+              octave_idx_type info;
+              ComplexCHOL chol (m, info);
+              if (info == 0)
+                retval = chol.inverse ();
               else
-                gripe_wrong_type_arg ("chol", arg);
+                error ("cholinv: A must be positive definite");
             }
           else
-            {
-              if (arg.is_real_type ())
-                {
-                  Matrix m = arg.matrix_value ();
-
-                  octave_idx_type info;
-                  CHOL chol (m, info);
-                  if (info == 0)
-                    retval = chol.inverse ();
-                  else
-                    error ("cholinv: A must be positive definite");
-                }
-              else if (arg.is_complex_type ())
-                {
-                  ComplexMatrix m = arg.complex_matrix_value ();
-
-                  octave_idx_type info;
-                  ComplexCHOL chol (m, info);
-                  if (info == 0)
-                    retval = chol.inverse ();
-                  else
-                    error ("cholinv: A must be positive definite");
-                }
-              else
-                gripe_wrong_type_arg ("chol", arg);
-            }
+            gripe_wrong_type_arg ("chol", arg);
         }
     }
-  else
-    print_usage ();
 
   return retval;
 }
@@ -488,73 +483,71 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1)
+  if (nargin != 1)
+    print_usage ();
+
+  octave_value arg = args(0);
+
+  octave_idx_type nr = arg.rows ();
+  octave_idx_type nc = arg.columns ();
+
+  if (nr == 0 || nc == 0)
+    retval = Matrix ();
+  else
     {
-      octave_value arg = args(0);
+      if (arg.is_sparse_type ())
+        {
+          if (arg.is_real_type ())
+            {
+              SparseMatrix r = arg.sparse_matrix_value ();
+
+              retval = chol2inv (r);
+            }
+          else if (arg.is_complex_type ())
+            {
+              SparseComplexMatrix r = arg.sparse_complex_matrix_value ();
 
-      octave_idx_type nr = arg.rows ();
-      octave_idx_type nc = arg.columns ();
+              retval = chol2inv (r);
+            }
+          else
+            gripe_wrong_type_arg ("chol2inv", arg);
+        }
+      else if (arg.is_single_type ())
+        {
+          if (arg.is_real_type ())
+            {
+              FloatMatrix r = arg.float_matrix_value ();
 
-      if (nr == 0 || nc == 0)
-        retval = Matrix ();
+              retval = chol2inv (r);
+            }
+          else if (arg.is_complex_type ())
+            {
+              FloatComplexMatrix r = arg.float_complex_matrix_value ();
+
+              retval = chol2inv (r);
+            }
+          else
+            gripe_wrong_type_arg ("chol2inv", arg);
+
+        }
       else
         {
-          if (arg.is_sparse_type ())
+          if (arg.is_real_type ())
             {
-              if (arg.is_real_type ())
-                {
-                  SparseMatrix r = arg.sparse_matrix_value ();
+              Matrix r = arg.matrix_value ();
 
-                  retval = chol2inv (r);
-                }
-              else if (arg.is_complex_type ())
-                {
-                  SparseComplexMatrix r = arg.sparse_complex_matrix_value ();
-
-                  retval = chol2inv (r);
-                }
-              else
-                gripe_wrong_type_arg ("chol2inv", arg);
+              retval = chol2inv (r);
             }
-          else if (arg.is_single_type ())
+          else if (arg.is_complex_type ())
             {
-              if (arg.is_real_type ())
-                {
-                  FloatMatrix r = arg.float_matrix_value ();
+              ComplexMatrix r = arg.complex_matrix_value ();
 
-                  retval = chol2inv (r);
-                }
-              else if (arg.is_complex_type ())
-                {
-                  FloatComplexMatrix r = arg.float_complex_matrix_value ();
-
-                  retval = chol2inv (r);
-                }
-              else
-                gripe_wrong_type_arg ("chol2inv", arg);
-
+              retval = chol2inv (r);
             }
           else
-            {
-              if (arg.is_real_type ())
-                {
-                  Matrix r = arg.matrix_value ();
-
-                  retval = chol2inv (r);
-                }
-              else if (arg.is_complex_type ())
-                {
-                  ComplexMatrix r = arg.complex_matrix_value ();
-
-                  retval = chol2inv (r);
-                }
-              else
-                gripe_wrong_type_arg ("chol2inv", arg);
-            }
+            gripe_wrong_type_arg ("chol2inv", arg);
         }
     }
-  else
-    print_usage ();
 
   return retval;
 }
@@ -596,10 +589,7 @@
   octave_value_list retval;
 
   if (nargin > 3 || nargin < 2)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argr = args(0);
   octave_value argu = args(1);
@@ -798,10 +788,7 @@
   octave_value_list retval;
 
   if (nargin != 3)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argr = args(0);
   octave_value argj = args(1);
@@ -1048,10 +1035,7 @@
   octave_value_list retval;
 
   if (nargin != 2)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argr = args(0);
   octave_value argj = args(1);
@@ -1185,10 +1169,7 @@
   octave_value_list retval;
 
   if (nargin != 3)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argr = args(0);
   octave_value argi = args(1);
--- a/libinterp/dldfcn/colamd.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/colamd.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -287,90 +287,75 @@
 
   if (nargout > 2 || nargin < 1 || nargin > 2)
     print_usage ();
-  else
-    {
-      // Get knobs
-      OCTAVE_LOCAL_BUFFER (double, knobs, COLAMD_KNOBS);
-      COLAMD_NAME (_set_defaults) (knobs);
+
+  // Get knobs
+  OCTAVE_LOCAL_BUFFER (double, knobs, COLAMD_KNOBS);
+  COLAMD_NAME (_set_defaults) (knobs);
 
-      // Check for user-passed knobs
-      if (nargin == 2)
-        {
-          NDArray User_knobs = args(1).array_value ();
-          int nel_User_knobs = User_knobs.numel ();
+  // Check for user-passed knobs
+  if (nargin == 2)
+    {
+      NDArray User_knobs = args(1).array_value ();
+      int nel_User_knobs = User_knobs.numel ();
 
-          if (nel_User_knobs > 0)
-            knobs[COLAMD_DENSE_ROW] = User_knobs(0);
-          if (nel_User_knobs > 1)
-            knobs[COLAMD_DENSE_COL] = User_knobs(1) ;
-          if (nel_User_knobs > 2)
-            spumoni = static_cast<int> (User_knobs(2));
-
-          // print knob settings if spumoni is set
-          if (spumoni)
-            {
+      if (nel_User_knobs > 0)
+        knobs[COLAMD_DENSE_ROW] = User_knobs(0);
+      if (nel_User_knobs > 1)
+        knobs[COLAMD_DENSE_COL] = User_knobs(1) ;
+      if (nel_User_knobs > 2)
+        spumoni = static_cast<int> (User_knobs(2));
 
-              octave_stdout << "\ncolamd version " << COLAMD_MAIN_VERSION
-                            << "." <<  COLAMD_SUB_VERSION
-                            << ", " << COLAMD_DATE << ":\n";
+      // print knob settings if spumoni is set
+      if (spumoni)
+        {
 
-              if (knobs[COLAMD_DENSE_ROW] >= 0)
-                octave_stdout << "knobs(1): " << User_knobs (0)
-                              << ", rows with > max (16,"
-                              << knobs[COLAMD_DENSE_ROW] << "*sqrt (size(A,2)))"
-                              << " entries removed\n";
-              else
-                octave_stdout << "knobs(1): " << User_knobs (0)
-                              << ", only completely dense rows removed\n";
+          octave_stdout << "\ncolamd version " << COLAMD_MAIN_VERSION
+                        << "." <<  COLAMD_SUB_VERSION
+                        << ", " << COLAMD_DATE << ":\n";
 
-              if (knobs[COLAMD_DENSE_COL] >= 0)
-                octave_stdout << "knobs(2): " << User_knobs (1)
-                              << ", cols with > max (16,"
-                              << knobs[COLAMD_DENSE_COL] << "*sqrt (size(A)))"
-                              << " entries removed\n";
-              else
-                octave_stdout << "knobs(2): " << User_knobs (1)
-                              << ", only completely dense columns removed\n";
+          if (knobs[COLAMD_DENSE_ROW] >= 0)
+            octave_stdout << "knobs(1): " << User_knobs (0)
+                          << ", rows with > max (16,"
+                          << knobs[COLAMD_DENSE_ROW] << "*sqrt (size(A,2)))"
+                          << " entries removed\n";
+          else
+            octave_stdout << "knobs(1): " << User_knobs (0)
+                          << ", only completely dense rows removed\n";
 
-              octave_stdout << "knobs(3): " << User_knobs (2)
-                            << ", statistics and knobs printed\n";
-
-            }
-        }
-
-      octave_idx_type n_row, n_col, nnz;
-      octave_idx_type *ridx, *cidx;
-      SparseComplexMatrix scm;
-      SparseMatrix sm;
+          if (knobs[COLAMD_DENSE_COL] >= 0)
+            octave_stdout << "knobs(2): " << User_knobs (1)
+                          << ", cols with > max (16,"
+                          << knobs[COLAMD_DENSE_COL] << "*sqrt (size(A)))"
+                          << " entries removed\n";
+          else
+            octave_stdout << "knobs(2): " << User_knobs (1)
+                          << ", only completely dense columns removed\n";
 
-      if (args(0).is_sparse_type ())
+          octave_stdout << "knobs(3): " << User_knobs (2)
+                        << ", statistics and knobs printed\n";
+
+        }
+    }
+
+  octave_idx_type n_row, n_col, nnz;
+  octave_idx_type *ridx, *cidx;
+  SparseComplexMatrix scm;
+  SparseMatrix sm;
+
+  if (args(0).is_sparse_type ())
+    {
+      if (args(0).is_complex_type ())
         {
-          if (args(0).is_complex_type ())
-            {
-              scm = args(0). sparse_complex_matrix_value ();
-              n_row = scm.rows ();
-              n_col = scm.cols ();
-              nnz = scm.nnz ();
-              ridx = scm.xridx ();
-              cidx = scm.xcidx ();
-            }
-          else
-            {
-              sm = args(0).sparse_matrix_value ();
-
-              n_row = sm.rows ();
-              n_col = sm.cols ();
-              nnz = sm.nnz ();
-              ridx = sm.xridx ();
-              cidx = sm.xcidx ();
-            }
+          scm = args(0). sparse_complex_matrix_value ();
+          n_row = scm.rows ();
+          n_col = scm.cols ();
+          nnz = scm.nnz ();
+          ridx = scm.xridx ();
+          cidx = scm.xcidx ();
         }
       else
         {
-          if (args(0).is_complex_type ())
-            sm = SparseMatrix (real (args(0).complex_matrix_value ()));
-          else
-            sm = SparseMatrix (args(0).matrix_value ());
+          sm = args(0).sparse_matrix_value ();
 
           n_row = sm.rows ();
           n_col = sm.cols ();
@@ -378,67 +363,80 @@
           ridx = sm.xridx ();
           cidx = sm.xcidx ();
         }
+    }
+  else
+    {
+      if (args(0).is_complex_type ())
+        sm = SparseMatrix (real (args(0).complex_matrix_value ()));
+      else
+        sm = SparseMatrix (args(0).matrix_value ());
 
-      // Allocate workspace for colamd
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, p, n_col+1);
-      for (octave_idx_type i = 0; i < n_col+1; i++)
-        p[i] = cidx[i];
-
-      octave_idx_type Alen = COLAMD_NAME (_recommended) (nnz, n_row, n_col);
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, A, Alen);
-      for (octave_idx_type i = 0; i < nnz; i++)
-        A[i] = ridx[i];
+      n_row = sm.rows ();
+      n_col = sm.cols ();
+      nnz = sm.nnz ();
+      ridx = sm.xridx ();
+      cidx = sm.xcidx ();
+    }
 
-      // Order the columns (destroys A)
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, stats, COLAMD_STATS);
-      if (! COLAMD_NAME () (n_row, n_col, Alen, A, p, knobs, stats))
-        {
-          COLAMD_NAME (_report) (stats) ;
-          error ("colamd: internal error!");
-          return retval;
-        }
+  // Allocate workspace for colamd
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, p, n_col+1);
+  for (octave_idx_type i = 0; i < n_col+1; i++)
+    p[i] = cidx[i];
 
-      // column elimination tree post-ordering (reuse variables)
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, colbeg, n_col + 1);
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, colend, n_col + 1);
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, etree, n_col + 1);
+  octave_idx_type Alen = COLAMD_NAME (_recommended) (nnz, n_row, n_col);
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, A, Alen);
+  for (octave_idx_type i = 0; i < nnz; i++)
+    A[i] = ridx[i];
 
-      for (octave_idx_type i = 0; i < n_col; i++)
-        {
-          colbeg[i] = cidx[p[i]];
-          colend[i] = cidx[p[i]+1];
-        }
+  // Order the columns (destroys A)
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, stats, COLAMD_STATS);
+  if (! COLAMD_NAME () (n_row, n_col, Alen, A, p, knobs, stats))
+    {
+      COLAMD_NAME (_report) (stats) ;
+      error ("colamd: internal error!");
+      return retval;
+    }
 
-      coletree (ridx, colbeg, colend, etree, n_row, n_col);
-
-      // Calculate the tree post-ordering
-      tree_postorder (n_col, etree, colbeg);
+  // column elimination tree post-ordering (reuse variables)
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, colbeg, n_col + 1);
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, colend, n_col + 1);
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, etree, n_col + 1);
 
-      // return the permutation vector
-      NDArray out_perm (dim_vector (1, n_col));
-      for (octave_idx_type i = 0; i < n_col; i++)
-        out_perm(i) = p[colbeg[i]] + 1;
+  for (octave_idx_type i = 0; i < n_col; i++)
+    {
+      colbeg[i] = cidx[p[i]];
+      colend[i] = cidx[p[i]+1];
+    }
 
-      retval(0) = out_perm;
+  coletree (ridx, colbeg, colend, etree, n_row, n_col);
+
+  // Calculate the tree post-ordering
+  tree_postorder (n_col, etree, colbeg);
 
-      // print stats if spumoni > 0
-      if (spumoni > 0)
-        COLAMD_NAME (_report) (stats) ;
+  // return the permutation vector
+  NDArray out_perm (dim_vector (1, n_col));
+  for (octave_idx_type i = 0; i < n_col; i++)
+    out_perm(i) = p[colbeg[i]] + 1;
+
+  retval(0) = out_perm;
+
+  // print stats if spumoni > 0
+  if (spumoni > 0)
+    COLAMD_NAME (_report) (stats) ;
 
-      // Return the stats vector
-      if (nargout == 2)
-        {
-          NDArray out_stats (dim_vector (1, COLAMD_STATS));
-          for (octave_idx_type i = 0 ; i < COLAMD_STATS ; i++)
-            out_stats(i) = stats[i] ;
-          retval(1) = out_stats;
+  // Return the stats vector
+  if (nargout == 2)
+    {
+      NDArray out_stats (dim_vector (1, COLAMD_STATS));
+      for (octave_idx_type i = 0 ; i < COLAMD_STATS ; i++)
+        out_stats(i) = stats[i] ;
+      retval(1) = out_stats;
 
-          // fix stats (5) and (6), for 1-based information on
-          // jumbled matrix.  note that this correction doesn't
-          // occur if symamd returns FALSE
-          out_stats (COLAMD_INFO1) ++ ;
-          out_stats (COLAMD_INFO2) ++ ;
-        }
+      // fix stats (5) and (6), for 1-based information on
+      // jumbled matrix.  note that this correction doesn't
+      // occur if symamd returns FALSE
+      out_stats (COLAMD_INFO1) ++ ;
+      out_stats (COLAMD_INFO2) ++ ;
     }
 
 #else
@@ -524,116 +522,114 @@
 
   if (nargout > 2 || nargin < 1 || nargin > 2)
     print_usage ();
-  else
-    {
-      // Get knobs
-      OCTAVE_LOCAL_BUFFER (double, knobs, COLAMD_KNOBS);
-      COLAMD_NAME (_set_defaults) (knobs);
+
+  // Get knobs
+  OCTAVE_LOCAL_BUFFER (double, knobs, COLAMD_KNOBS);
+  COLAMD_NAME (_set_defaults) (knobs);
 
-      // Check for user-passed knobs
-      if (nargin == 2)
-        {
-          NDArray User_knobs = args(1).array_value ();
-          int nel_User_knobs = User_knobs.numel ();
+  // Check for user-passed knobs
+  if (nargin == 2)
+    {
+      NDArray User_knobs = args(1).array_value ();
+      int nel_User_knobs = User_knobs.numel ();
 
-          if (nel_User_knobs > 0)
-            knobs[COLAMD_DENSE_ROW] = User_knobs(COLAMD_DENSE_ROW);
-          if (nel_User_knobs > 1)
-            spumoni = static_cast<int> (User_knobs (1));
-        }
-
-      // print knob settings if spumoni is set
-      if (spumoni > 0)
-        octave_stdout << "symamd: dense row/col fraction: "
-                      << knobs[COLAMD_DENSE_ROW] << std::endl;
+      if (nel_User_knobs > 0)
+        knobs[COLAMD_DENSE_ROW] = User_knobs(COLAMD_DENSE_ROW);
+      if (nel_User_knobs > 1)
+        spumoni = static_cast<int> (User_knobs (1));
+    }
 
-      octave_idx_type n_row, n_col;
-      octave_idx_type *ridx, *cidx;
-      SparseMatrix sm;
-      SparseComplexMatrix scm;
+  // print knob settings if spumoni is set
+  if (spumoni > 0)
+    octave_stdout << "symamd: dense row/col fraction: "
+                  << knobs[COLAMD_DENSE_ROW] << std::endl;
 
-      if (args(0).is_sparse_type ())
+  octave_idx_type n_row, n_col;
+  octave_idx_type *ridx, *cidx;
+  SparseMatrix sm;
+  SparseComplexMatrix scm;
+
+  if (args(0).is_sparse_type ())
+    {
+      if (args(0).is_complex_type ())
         {
-          if (args(0).is_complex_type ())
-            {
-              scm = args(0).sparse_complex_matrix_value ();
-              n_row = scm.rows ();
-              n_col = scm.cols ();
-              ridx = scm.xridx ();
-              cidx = scm.xcidx ();
-            }
-          else
-            {
-              sm = args(0).sparse_matrix_value ();
-              n_row = sm.rows ();
-              n_col = sm.cols ();
-              ridx = sm.xridx ();
-              cidx = sm.xcidx ();
-            }
+          scm = args(0).sparse_complex_matrix_value ();
+          n_row = scm.rows ();
+          n_col = scm.cols ();
+          ridx = scm.xridx ();
+          cidx = scm.xcidx ();
         }
       else
         {
-          if (args(0).is_complex_type ())
-            sm = SparseMatrix (real (args(0).complex_matrix_value ()));
-          else
-            sm = SparseMatrix (args(0).matrix_value ());
-
+          sm = args(0).sparse_matrix_value ();
           n_row = sm.rows ();
           n_col = sm.cols ();
           ridx = sm.xridx ();
           cidx = sm.xcidx ();
         }
+    }
+  else
+    {
+      if (args(0).is_complex_type ())
+        sm = SparseMatrix (real (args(0).complex_matrix_value ()));
+      else
+        sm = SparseMatrix (args(0).matrix_value ());
 
-      if (n_row != n_col)
-        {
-          error ("symamd: matrix S must be square");
-          return retval;
-        }
+      n_row = sm.rows ();
+      n_col = sm.cols ();
+      ridx = sm.xridx ();
+      cidx = sm.xcidx ();
+    }
 
-      // Allocate workspace for symamd
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, perm, n_col+1);
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, stats, COLAMD_STATS);
-      if (!SYMAMD_NAME () (n_col, ridx, cidx, perm,
-                           knobs, stats, &calloc, &free))
-        {
-          SYMAMD_NAME (_report) (stats) ;
-          error ("symamd: internal error!") ;
-          return retval;
-        }
+  if (n_row != n_col)
+    {
+      error ("symamd: matrix S must be square");
+      return retval;
+    }
 
-      // column elimination tree post-ordering
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, etree, n_col + 1);
-      symetree (ridx, cidx, etree, perm, n_col);
-
-      // Calculate the tree post-ordering
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, post, n_col + 1);
-      tree_postorder (n_col, etree, post);
+  // Allocate workspace for symamd
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, perm, n_col+1);
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, stats, COLAMD_STATS);
+  if (!SYMAMD_NAME () (n_col, ridx, cidx, perm,
+                       knobs, stats, &calloc, &free))
+    {
+      SYMAMD_NAME (_report) (stats) ;
+      error ("symamd: internal error!") ;
+      return retval;
+    }
 
-      // return the permutation vector
-      NDArray out_perm (dim_vector (1, n_col));
-      for (octave_idx_type i = 0; i < n_col; i++)
-        out_perm(i) = perm[post[i]] + 1;
+  // column elimination tree post-ordering
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, etree, n_col + 1);
+  symetree (ridx, cidx, etree, perm, n_col);
 
-      retval(0) = out_perm;
+  // Calculate the tree post-ordering
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, post, n_col + 1);
+  tree_postorder (n_col, etree, post);
 
-      // print stats if spumoni > 0
-      if (spumoni > 0)
-        SYMAMD_NAME (_report) (stats) ;
+  // return the permutation vector
+  NDArray out_perm (dim_vector (1, n_col));
+  for (octave_idx_type i = 0; i < n_col; i++)
+    out_perm(i) = perm[post[i]] + 1;
+
+  retval(0) = out_perm;
 
-      // Return the stats vector
-      if (nargout == 2)
-        {
-          NDArray out_stats (dim_vector (1, COLAMD_STATS));
-          for (octave_idx_type i = 0 ; i < COLAMD_STATS ; i++)
-            out_stats(i) = stats[i] ;
-          retval(1) = out_stats;
+  // print stats if spumoni > 0
+  if (spumoni > 0)
+    SYMAMD_NAME (_report) (stats) ;
 
-          // fix stats (5) and (6), for 1-based information on
-          // jumbled matrix.  note that this correction doesn't
-          // occur if symamd returns FALSE
-          out_stats (COLAMD_INFO1) ++ ;
-          out_stats (COLAMD_INFO2) ++ ;
-        }
+  // Return the stats vector
+  if (nargout == 2)
+    {
+      NDArray out_stats (dim_vector (1, COLAMD_STATS));
+      for (octave_idx_type i = 0 ; i < COLAMD_STATS ; i++)
+        out_stats(i) = stats[i] ;
+      retval(1) = out_stats;
+
+      // fix stats (5) and (6), for 1-based information on
+      // jumbled matrix.  note that this correction doesn't
+      // occur if symamd returns FALSE
+      out_stats (COLAMD_INFO1) ++ ;
+      out_stats (COLAMD_INFO2) ++ ;
     }
 
 #else
@@ -669,97 +665,95 @@
 
   if (nargout > 2 || nargin < 1 || nargin > 2)
     print_usage ();
-  else
+
+  octave_idx_type n_row, n_col;
+  octave_idx_type *ridx, *cidx;
+  bool is_sym = true;
+  SparseMatrix sm;
+  SparseComplexMatrix scm;
+
+  if (args(0).is_sparse_type ())
     {
-      octave_idx_type n_row, n_col;
-      octave_idx_type *ridx, *cidx;
-      bool is_sym = true;
-      SparseMatrix sm;
-      SparseComplexMatrix scm;
-
-      if (args(0).is_sparse_type ())
+      if (args(0).is_complex_type ())
         {
-          if (args(0).is_complex_type ())
-            {
-              scm = args(0).sparse_complex_matrix_value ();
-              n_row = scm.rows ();
-              n_col = scm.cols ();
-              ridx = scm.xridx ();
-              cidx = scm.xcidx ();
-            }
-          else
-            {
-              sm = args(0).sparse_matrix_value ();
-              n_row = sm.rows ();
-              n_col = sm.cols ();
-              ridx = sm.xridx ();
-              cidx = sm.xcidx ();
-            }
-
+          scm = args(0).sparse_complex_matrix_value ();
+          n_row = scm.rows ();
+          n_col = scm.cols ();
+          ridx = scm.xridx ();
+          cidx = scm.xcidx ();
         }
       else
         {
-          error ("etree: S must be a sparse matrix");
+          sm = args(0).sparse_matrix_value ();
+          n_row = sm.rows ();
+          n_col = sm.cols ();
+          ridx = sm.xridx ();
+          cidx = sm.xcidx ();
+        }
+
+    }
+  else
+    {
+      error ("etree: S must be a sparse matrix");
+      return retval;
+    }
+
+  if (nargin == 2)
+    {
+      std::string str = args(1).xstring_value ("etree: TYP must be a string");
+      if (str.find ("C") == 0 || str.find ("c") == 0)
+        is_sym = false;
+    }
+
+  // column elimination tree post-ordering (reuse variables)
+  OCTAVE_LOCAL_BUFFER (octave_idx_type, etree, n_col + 1);
+
+  if (is_sym)
+    {
+      if (n_row != n_col)
+        {
+          error ("etree: S is marked as symmetric, but is not square");
           return retval;
         }
 
-      if (nargin == 2)
+      symetree (ridx, cidx, etree, 0, n_col);
+    }
+  else
+    {
+      OCTAVE_LOCAL_BUFFER (octave_idx_type, colbeg, n_col);
+      OCTAVE_LOCAL_BUFFER (octave_idx_type, colend, n_col);
+
+      for (octave_idx_type i = 0; i < n_col; i++)
         {
-          std::string str = args(1).xstring_value ("etree: TYP must be a string");
-          if (str.find ("C") == 0 || str.find ("c") == 0)
-            is_sym = false;
+          colbeg[i] = cidx[i];
+          colend[i] = cidx[i+1];
         }
 
-      // column elimination tree post-ordering (reuse variables)
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, etree, n_col + 1);
-
-      if (is_sym)
-        {
-          if (n_row != n_col)
-            {
-              error ("etree: S is marked as symmetric, but is not square");
-              return retval;
-            }
+      coletree (ridx, colbeg, colend, etree, n_row, n_col);
+    }
 
-          symetree (ridx, cidx, etree, 0, n_col);
-        }
-      else
-        {
-          OCTAVE_LOCAL_BUFFER (octave_idx_type, colbeg, n_col);
-          OCTAVE_LOCAL_BUFFER (octave_idx_type, colend, n_col);
-
-          for (octave_idx_type i = 0; i < n_col; i++)
-            {
-              colbeg[i] = cidx[i];
-              colend[i] = cidx[i+1];
-            }
+  NDArray tree (dim_vector (1, n_col));
+  for (octave_idx_type i = 0; i < n_col; i++)
+    // We flag a root with n_col while Matlab does it with zero
+    // Convert for matlab compatiable output
+    if (etree[i] == n_col)
+      tree(i) = 0;
+    else
+      tree(i) = etree[i] + 1;
 
-          coletree (ridx, colbeg, colend, etree, n_row, n_col);
-        }
-
-      NDArray tree (dim_vector (1, n_col));
-      for (octave_idx_type i = 0; i < n_col; i++)
-        // We flag a root with n_col while Matlab does it with zero
-        // Convert for matlab compatiable output
-        if (etree[i] == n_col)
-          tree(i) = 0;
-        else
-          tree(i) = etree[i] + 1;
+  retval(0) = tree;
 
-      retval(0) = tree;
+  if (nargout == 2)
+    {
+      // Calculate the tree post-ordering
+      OCTAVE_LOCAL_BUFFER (octave_idx_type, post, n_col + 1);
+      tree_postorder (n_col, etree, post);
 
-      if (nargout == 2)
-        {
-          // Calculate the tree post-ordering
-          OCTAVE_LOCAL_BUFFER (octave_idx_type, post, n_col + 1);
-          tree_postorder (n_col, etree, post);
+      NDArray postorder (dim_vector (1, n_col));
+      for (octave_idx_type i = 0; i < n_col; i++)
+        postorder(i) = post[i] + 1;
 
-          NDArray postorder (dim_vector (1, n_col));
-          for (octave_idx_type i = 0; i < n_col; i++)
-            postorder(i) = post[i] + 1;
-
-          retval(1) = postorder;
-        }
+      retval(1) = postorder;
     }
 
   return retval;
--- a/libinterp/dldfcn/convhulln.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/convhulln.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -113,10 +113,7 @@
 
   int nargin = args.length ();
   if (nargin < 1 || nargin > 2)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   Matrix points (args(0).matrix_value ());
   const octave_idx_type dim = points.columns ();
--- a/libinterp/dldfcn/dmperm.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/dmperm.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -157,10 +157,7 @@
   octave_value_list retval;
 
   if (nargin != 1)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
 #if HAVE_CXSPARSE
   retval = dmperm_internal (false, args(0), nargout);
@@ -206,10 +203,7 @@
   octave_value_list retval;
 
   if (nargin != 1)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
 #if HAVE_CXSPARSE
   retval = dmperm_internal (true, args(0), nargout);
--- a/libinterp/dldfcn/fftw.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/fftw.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -137,10 +137,7 @@
   int nargin = args.length ();
 
   if (nargin < 1 || nargin > 2)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
 #if defined (HAVE_FFTW)
   std::string arg0 = args(0).xstring_value ("fftw: first argument must be a string");
--- a/libinterp/dldfcn/qr.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/qr.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -204,10 +204,7 @@
   int nargin = args.length ();
 
   if (nargin < 1 || nargin > (args(0).is_sparse_type () ? 3 : 2))
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value arg = args(0);
 
@@ -763,10 +760,7 @@
   octave_value_list retval;
 
   if (nargin != 4)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argq = args(0);
   octave_value argr = args(1);
@@ -951,10 +945,7 @@
   octave_value_list retval;
 
   if (nargin < 4 || nargin > 5)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argq = args(0);
   octave_value argr = args(1);
@@ -1170,10 +1161,7 @@
   octave_value_list retval;
 
   if (nargin < 3 || nargin > 4)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argq = args(0);
   octave_value argr = args(1);
@@ -1422,10 +1410,7 @@
   octave_value_list retval;
 
   if (nargin != 4)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value argq = args(0);
   octave_value argr = args(1);
--- a/libinterp/dldfcn/symbfact.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/symbfact.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -100,10 +100,7 @@
   int nargin = args.length ();
 
   if (nargin < 1  || nargin > 3 || nargout > 5)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
 #ifdef HAVE_CHOLMOD
 
--- a/libinterp/dldfcn/symrcm.cc	Thu Dec 03 09:26:04 2015 -0800
+++ b/libinterp/dldfcn/symrcm.cc	Thu Dec 03 12:15:38 2015 -0500
@@ -441,10 +441,7 @@
   int nargin = args.length ();
 
   if (nargin != 1)
-    {
-      print_usage ();
-      return retval;
-    }
+    print_usage ();
 
   octave_value arg = args(0);