comparison libinterp/corefcn/dasrt.cc @ 20589:b10432a40432

eliminate more simple uses of error_state * dasrt.cc, debug.cc, find.cc, gammainc.cc, matrix_type.cc, ov-usr-fcn.cc, pt-assign.cc, pt-binop.cc: Eliminate simple uses of error_state.
author John W. Eaton <jwe@octave.org>
date Mon, 05 Oct 2015 20:37:19 -0400
parents 7ac907da9fba
children
comparison
equal deleted inserted replaced
20588:4bed806ee3d4 20589:b10432a40432
446 446
447 case 2: 447 case 2:
448 { 448 {
449 string_vector tmp = args(0).all_strings (); 449 string_vector tmp = args(0).all_strings ();
450 450
451 if (! error_state) 451 fcn_name = unique_symbol_name ("__dasrt_fcn__");
452 fname = "function y = ";
453 fname.append (fcn_name);
454 fname.append (" (x, xdot, t) y = ");
455 dasrt_f = extract_function (tmp(0), "dasrt", fcn_name,
456 fname, "; endfunction");
457
458 if (dasrt_f)
452 { 459 {
453 fcn_name = unique_symbol_name ("__dasrt_fcn__"); 460 jac_name = unique_symbol_name ("__dasrt_jac__");
454 fname = "function y = "; 461 jname = "function jac = ";
455 fname.append (fcn_name); 462 jname.append (jac_name);
456 fname.append (" (x, xdot, t) y = "); 463 jname.append (" (x, xdot, t, cj) jac = ");
457 dasrt_f = extract_function (tmp(0), "dasrt", fcn_name, 464 dasrt_j = extract_function (tmp(1), "dasrt", jac_name,
458 fname, "; endfunction"); 465 jname, "; endfunction");
459 466
460 if (dasrt_f) 467 if (! dasrt_j)
461 { 468 dasrt_f = 0;
462 jac_name = unique_symbol_name ("__dasrt_jac__");
463 jname = "function jac = ";
464 jname.append (jac_name);
465 jname.append (" (x, xdot, t, cj) jac = ");
466 dasrt_j = extract_function (tmp(1), "dasrt", jac_name,
467 jname, "; endfunction");
468
469 if (! dasrt_j)
470 dasrt_f = 0;
471 }
472 } 469 }
473 } 470 }
474 break; 471 break;
475 472
476 default: 473 default:
558 if (fcn_name.length ()) 555 if (fcn_name.length ())
559 clear_function (fcn_name); 556 clear_function (fcn_name);
560 if (jac_name.length ()) 557 if (jac_name.length ())
561 clear_function (jac_name); 558 clear_function (jac_name);
562 559
563 if (! error_state) 560 std::string msg = dae.error_message ();
564 { 561
565 std::string msg = dae.error_message (); 562 retval(4) = msg;
566 563 retval(3) = static_cast<double> (dae.integration_state ());
567 retval(4) = msg; 564
568 retval(3) = static_cast<double> (dae.integration_state ()); 565 if (dae.integration_ok ())
569 566 {
570 if (dae.integration_ok ()) 567 retval(2) = output.times ();
571 { 568 retval(1) = output.deriv ();
572 retval(2) = output.times (); 569 retval(0) = output.state ();
573 retval(1) = output.deriv (); 570 }
574 retval(0) = output.state (); 571 else
575 } 572 {
576 else 573 retval(2) = Matrix ();
577 { 574 retval(1) = Matrix ();
578 retval(2) = Matrix (); 575 retval(0) = Matrix ();
579 retval(1) = Matrix (); 576
580 retval(0) = Matrix (); 577 if (nargout < 4)
581 578 error ("dasrt: %s", msg.c_str ());
582 if (nargout < 4)
583 error ("dasrt: %s", msg.c_str ());
584 }
585 } 579 }
586 580
587 return retval; 581 return retval;
588 } 582 }