Mercurial > octave
changeset 23700:d59fb809595b
* dasrt.cc (Fdasrt): Use extract_function instead of is_valid_function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 26 Jun 2017 17:44:07 -0400 |
parents | b29904962d2d |
children | a6e49930ddd2 |
files | libinterp/corefcn/dasrt.cc |
diffstat | 1 files changed, 12 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/dasrt.cc Mon Jun 26 14:31:07 2017 -0400 +++ b/libinterp/corefcn/dasrt.cc Mon Jun 26 17:44:07 2017 -0400 @@ -466,26 +466,22 @@ argp++; if (args(1).is_function_handle () || args(1).is_inline_function ()) + dasrt_cf = args(1).function_value (); + else { - dasrt_cf = args(1).function_value (); - - if (! dasrt_cf) - error ("dasrt: invalid constraint function G"); - - argp++; - - func.set_constraint_function (dasrt_user_cf); + fcn_name = unique_symbol_name ("__dasrt_constraint_fcn__"); + fname = "function g_out = "; + fname.append (fcn_name); + fname.append (" (x, t) g_out = "); + dasrt_cf = extract_function (f_arg, "dasrt", fcn_name, fname, + "; endfunction"); } - else if (args(1).is_string ()) - { - dasrt_cf = is_valid_function (args(1), "dasrt", true); - if (! dasrt_cf) - error ("dasrt: invalid constraint function G"); - argp++; + if (! dasrt_cf) + error ("dasrt: invalid constraint function G"); - func.set_constraint_function (dasrt_user_cf); - } + argp++; + func.set_constraint_function (dasrt_user_cf); ColumnVector state = args(argp).xvector_value ("dasrt: initial state X_0 must be a vector");