comparison libinterp/corefcn/dasrt.cc @ 20917:6f0bd96f93c0

maint: Use new C++ archetype in more files. Place input validation first in files. Move declaration of retval down in function to be closer to point of usage. Eliminate else clause after if () error. Use "return ovl()" where it makes sense. * __dispatch__.cc, __dsearchn__.cc, __ichol__.cc, __lin_interpn__.cc, balance.cc, betainc.cc, bitfcns.cc, bsxfun.cc, cellfun.cc, colloc.cc, conv2.cc, daspk.cc, dasrt.cc, dassl.cc, data.cc, debug.cc, dirfns.cc, dlmread.cc, dot.cc, eig.cc, error.cc, fft.cc, fft2.cc, fftn.cc, file-io.cc, ov-type-conv.h: Use new C++ archetype in more files.
author Rik <rik@octave.org>
date Wed, 16 Dec 2015 15:00:31 -0800
parents c07bee629973
children 48b2ad5ee801
comparison
equal deleted inserted replaced
20916:a7051a169cad 20917:6f0bd96f93c0
354 You can use the function @code{dasrt_options} to set optional\n\ 354 You can use the function @code{dasrt_options} to set optional\n\
355 parameters for @code{dasrt}.\n\ 355 parameters for @code{dasrt}.\n\
356 @seealso{dasrt_options, daspk, dasrt, lsode}\n\ 356 @seealso{dasrt_options, daspk, dasrt, lsode}\n\
357 @end deftypefn") 357 @end deftypefn")
358 { 358 {
359 octave_value_list retval (5); 359 int nargin = args.length ();
360
361 if (nargin < 4 || nargin > 6)
362 print_usage ();
360 363
361 warned_fcn_imaginary = false; 364 warned_fcn_imaginary = false;
362 warned_jac_imaginary = false; 365 warned_jac_imaginary = false;
363 warned_cf_imaginary = false; 366 warned_cf_imaginary = false;
364 367
368 octave_value_list retval (5);
369
365 unwind_protect frame; 370 unwind_protect frame;
366 371
367 frame.protect_var (call_depth); 372 frame.protect_var (call_depth);
368 call_depth++; 373 call_depth++;
369 374
370 if (call_depth > 1) 375 if (call_depth > 1)
371 DASRT_ABORT1 ("invalid recursive call"); 376 DASRT_ABORT1 ("invalid recursive call");
372
373 int nargin = args.length ();
374
375 if (nargin < 4 || nargin > 6)
376 print_usage ();
377 377
378 int argp = 0; 378 int argp = 0;
379 std::string fcn_name, fname, jac_name, jname; 379 std::string fcn_name, fname, jac_name, jname;
380 dasrt_f = 0; 380 dasrt_f = 0;
381 dasrt_j = 0; 381 dasrt_j = 0;
417 jname.append (jac_name); 417 jname.append (jac_name);
418 jname.append (" (x, xdot, t, cj) jac = "); 418 jname.append (" (x, xdot, t, cj) jac = ");
419 dasrt_j = extract_function (c(1), "dasrt", jac_name, jname, 419 dasrt_j = extract_function (c(1), "dasrt", jac_name, jname,
420 "; endfunction"); 420 "; endfunction");
421 421
422 if (!dasrt_j) 422 if (! dasrt_j)
423 { 423 {
424 if (fcn_name.length ()) 424 if (fcn_name.length ())
425 clear_function (fcn_name); 425 clear_function (fcn_name);
426 dasrt_f = 0; 426 dasrt_f = 0;
427 } 427 }
430 } 430 }
431 else 431 else
432 DASRT_ABORT1 ("incorrect number of elements in cell array"); 432 DASRT_ABORT1 ("incorrect number of elements in cell array");
433 } 433 }
434 434
435 if (!dasrt_f && ! f_arg.is_cell ()) 435 if (! dasrt_f && ! f_arg.is_cell ())
436 { 436 {
437 if (f_arg.is_function_handle () || f_arg.is_inline_function ()) 437 if (f_arg.is_function_handle () || f_arg.is_inline_function ())
438 dasrt_f = f_arg.function_value (); 438 dasrt_f = f_arg.function_value ();
439 else 439 else
440 { 440 {