diff libinterp/corefcn/dassl.cc @ 20802:8bb38ba1bad6

eliminate return statements after calls to print_usage * __contourc__.cc, __dispatch__.cc, __dsearchn__.cc, __ichol__.cc, __lin_interpn__.cc, __qp__.cc, balance.cc, betainc.cc, bsxfun.cc, colloc.cc, daspk.cc, dasrt.cc, dassl.cc, defaults.cc, det.cc, dlmread.cc, dot.cc, eig.cc, ellipj.cc, fft.cc, fft2.cc, fftn.cc, filter.cc, find.cc, gcd.cc, givens.cc, hex2num.cc, inv.cc, lookup.cc, lu.cc, max.cc, mgorth.cc, ordschur.cc, pinv.cc, profiler.cc, quad.cc, qz.cc, rcond.cc, schur.cc, str2double.cc: Eliminate return statements after calls to print_usage.
author John W. Eaton <jwe@octave.org>
date Fri, 04 Dec 2015 12:03:44 -0500
parents b6f2909e7f94
children 1142cf6abc0d
line wrap: on
line diff
--- a/libinterp/corefcn/dassl.cc	Thu Dec 03 19:22:54 2015 -0500
+++ b/libinterp/corefcn/dassl.cc	Fri Dec 04 12:03:44 2015 -0500
@@ -293,178 +293,176 @@
 
   int nargin = args.length ();
 
-  if (nargin > 3 && nargin < 6 && nargout < 5)
+  if (nargin < 4 || nargin > 5 || nargout > 4)
+    print_usage ();
+
+  std::string fcn_name, fname, jac_name, jname;
+  dassl_fcn = 0;
+  dassl_jac = 0;
+
+  octave_value f_arg = args(0);
+
+  if (f_arg.is_cell ())
     {
-      std::string fcn_name, fname, jac_name, jname;
-      dassl_fcn = 0;
-      dassl_jac = 0;
-
-      octave_value f_arg = args(0);
+      Cell c = f_arg.cell_value ();
+      if (c.numel () == 1)
+        f_arg = c(0);
+      else if (c.numel () == 2)
+        {
+          if (c(0).is_function_handle () || c(0).is_inline_function ())
+            dassl_fcn = c(0).function_value ();
+          else
+            {
+              fcn_name = unique_symbol_name ("__dassl_fcn__");
+              fname = "function y = ";
+              fname.append (fcn_name);
+              fname.append (" (x, xdot, t) y = ");
+              dassl_fcn = extract_function (c(0), "dassl", fcn_name, fname,
+                                            "; endfunction");
+            }
 
-      if (f_arg.is_cell ())
+          if (dassl_fcn)
+            {
+              if (c(1).is_function_handle () || c(1).is_inline_function ())
+                dassl_jac = c(1).function_value ();
+              else
+                {
+                  jac_name = unique_symbol_name ("__dassl_jac__");
+                  jname = "function jac = ";
+                  jname.append (jac_name);
+                  jname.append (" (x, xdot, t, cj) jac = ");
+                  dassl_jac = extract_function (c(1), "dassl", jac_name,
+                                                jname, "; endfunction");
+
+                  if (!dassl_jac)
+                    {
+                      if (fcn_name.length ())
+                        clear_function (fcn_name);
+                      dassl_fcn = 0;
+                    }
+                }
+            }
+        }
+      else
+        DASSL_ABORT1 ("incorrect number of elements in cell array");
+    }
+
+  if (!dassl_fcn && ! f_arg.is_cell ())
+    {
+      if (f_arg.is_function_handle () || f_arg.is_inline_function ())
+        dassl_fcn = f_arg.function_value ();
+      else
         {
-          Cell c = f_arg.cell_value ();
-          if (c.numel () == 1)
-            f_arg = c(0);
-          else if (c.numel () == 2)
+          switch (f_arg.rows ())
             {
-              if (c(0).is_function_handle () || c(0).is_inline_function ())
-                dassl_fcn = c(0).function_value ();
-              else
+            case 1:
+              do
                 {
                   fcn_name = unique_symbol_name ("__dassl_fcn__");
                   fname = "function y = ";
                   fname.append (fcn_name);
                   fname.append (" (x, xdot, t) y = ");
-                  dassl_fcn = extract_function (c(0), "dassl", fcn_name, fname,
-                                                "; endfunction");
+                  dassl_fcn = extract_function (f_arg, "dassl", fcn_name,
+                                                fname, "; endfunction");
                 }
+              while (0);
+              break;
 
-              if (dassl_fcn)
-                {
-                  if (c(1).is_function_handle () || c(1).is_inline_function ())
-                    dassl_jac = c(1).function_value ();
-                  else
-                    {
-                      jac_name = unique_symbol_name ("__dassl_jac__");
-                      jname = "function jac = ";
-                      jname.append (jac_name);
-                      jname.append (" (x, xdot, t, cj) jac = ");
-                      dassl_jac = extract_function (c(1), "dassl", jac_name,
-                                                    jname, "; endfunction");
-
-                      if (!dassl_jac)
-                        {
-                          if (fcn_name.length ())
-                            clear_function (fcn_name);
-                          dassl_fcn = 0;
-                        }
-                    }
-                }
-            }
-          else
-            DASSL_ABORT1 ("incorrect number of elements in cell array");
-        }
+            case 2:
+              {
+                string_vector tmp = f_arg.all_strings ();
 
-      if (!dassl_fcn && ! f_arg.is_cell ())
-        {
-          if (f_arg.is_function_handle () || f_arg.is_inline_function ())
-            dassl_fcn = f_arg.function_value ();
-          else
-            {
-              switch (f_arg.rows ())
-                {
-                case 1:
-                  do
-                    {
-                      fcn_name = unique_symbol_name ("__dassl_fcn__");
-                      fname = "function y = ";
-                      fname.append (fcn_name);
-                      fname.append (" (x, xdot, t) y = ");
-                      dassl_fcn = extract_function (f_arg, "dassl", fcn_name,
-                                                    fname, "; endfunction");
-                    }
-                  while (0);
-                  break;
+                fcn_name = unique_symbol_name ("__dassl_fcn__");
+                fname = "function y = ";
+                fname.append (fcn_name);
+                fname.append (" (x, xdot, t) y = ");
+                dassl_fcn = extract_function (tmp(0), "dassl", fcn_name,
+                                              fname, "; endfunction");
 
-                case 2:
+                if (dassl_fcn)
                   {
-                    string_vector tmp = f_arg.all_strings ();
+                    jac_name = unique_symbol_name ("__dassl_jac__");
+                    jname = "function jac = ";
+                    jname.append (jac_name);
+                    jname.append (" (x, xdot, t, cj) jac = ");
+                    dassl_jac = extract_function (tmp(1), "dassl",
+                                                  jac_name, jname,
+                                                  "; endfunction");
 
-                    fcn_name = unique_symbol_name ("__dassl_fcn__");
-                    fname = "function y = ";
-                    fname.append (fcn_name);
-                    fname.append (" (x, xdot, t) y = ");
-                    dassl_fcn = extract_function (tmp(0), "dassl", fcn_name,
-                                                  fname, "; endfunction");
-
-                    if (dassl_fcn)
+                    if (!dassl_jac)
                       {
-                        jac_name = unique_symbol_name ("__dassl_jac__");
-                        jname = "function jac = ";
-                        jname.append (jac_name);
-                        jname.append (" (x, xdot, t, cj) jac = ");
-                        dassl_jac = extract_function (tmp(1), "dassl",
-                                                      jac_name, jname,
-                                                      "; endfunction");
-
-                        if (!dassl_jac)
-                          {
-                            if (fcn_name.length ())
-                              clear_function (fcn_name);
-                            dassl_fcn = 0;
-                          }
+                        if (fcn_name.length ())
+                          clear_function (fcn_name);
+                        dassl_fcn = 0;
                       }
                   }
-                }
+              }
             }
         }
-
-      if (! dassl_fcn)
-        DASSL_ABORT ();
+    }
 
-      ColumnVector state = args(1).xvector_value ("dassl: initial state X_0 must be a vector");
-
-      ColumnVector deriv = args(2).xvector_value ("dassl: initial derivatives XDOT_0 must be a vector");
+  if (! dassl_fcn)
+    DASSL_ABORT ();
 
-      ColumnVector out_times = args(3).xvector_value ("dassl: output time variable T must be a vector");
+  ColumnVector state = args(1).xvector_value ("dassl: initial state X_0 must be a vector");
 
-      ColumnVector crit_times;
-      int crit_times_set = 0;
-      if (nargin > 4)
-        {
-          crit_times = args(4).xvector_value ("dassl: list of critical times T_CRIT must be a vector");
+  ColumnVector deriv = args(2).xvector_value ("dassl: initial derivatives XDOT_0 must be a vector");
+
+  ColumnVector out_times = args(3).xvector_value ("dassl: output time variable T must be a vector");
 
-          crit_times_set = 1;
-        }
-
-      if (state.numel () != deriv.numel ())
-        DASSL_ABORT1 ("X and XDOT_0 must have the same size");
-
-      double tzero = out_times (0);
+  ColumnVector crit_times;
+  int crit_times_set = 0;
+  if (nargin > 4)
+    {
+      crit_times = args(4).xvector_value ("dassl: list of critical times T_CRIT must be a vector");
 
-      DAEFunc func (dassl_user_function);
-      if (dassl_jac)
-        func.set_jacobian_function (dassl_user_jacobian);
+      crit_times_set = 1;
+    }
 
-      DASSL dae (state, deriv, tzero, func);
+  if (state.numel () != deriv.numel ())
+    DASSL_ABORT1 ("X and XDOT_0 must have the same size");
 
-      dae.set_options (dassl_opts);
+  double tzero = out_times (0);
 
-      Matrix output;
-      Matrix deriv_output;
+  DAEFunc func (dassl_user_function);
+  if (dassl_jac)
+    func.set_jacobian_function (dassl_user_jacobian);
 
-      if (crit_times_set)
-        output = dae.integrate (out_times, deriv_output, crit_times);
-      else
-        output = dae.integrate (out_times, deriv_output);
+  DASSL dae (state, deriv, tzero, func);
 
-      if (fcn_name.length ())
-        clear_function (fcn_name);
-      if (jac_name.length ())
-        clear_function (jac_name);
+  dae.set_options (dassl_opts);
 
-      std::string msg = dae.error_message ();
+  Matrix output;
+  Matrix deriv_output;
 
-      retval(3) = msg;
-      retval(2) = static_cast<double> (dae.integration_state ());
+  if (crit_times_set)
+    output = dae.integrate (out_times, deriv_output, crit_times);
+  else
+    output = dae.integrate (out_times, deriv_output);
+
+  if (fcn_name.length ())
+    clear_function (fcn_name);
+  if (jac_name.length ())
+    clear_function (jac_name);
 
-      if (dae.integration_ok ())
-        {
-          retval(1) = deriv_output;
-          retval(0) = output;
-        }
-      else
-        {
-          retval(1) = Matrix ();
-          retval(0) = Matrix ();
+  std::string msg = dae.error_message ();
+
+  retval(3) = msg;
+  retval(2) = static_cast<double> (dae.integration_state ());
 
-          if (nargout < 3)
-            error ("dassl: %s", msg.c_str ());
-        }
+  if (dae.integration_ok ())
+    {
+      retval(1) = deriv_output;
+      retval(0) = output;
     }
   else
-    print_usage ();
+    {
+      retval(1) = Matrix ();
+      retval(0) = Matrix ();
+
+      if (nargout < 3)
+        error ("dassl: %s", msg.c_str ());
+    }
 
   return retval;
 }