From: Christian Bauer Date: Thu, 20 Feb 2003 21:19:31 +0000 (+0000) Subject: function_options::do_not_evalf_params() now actually works X-Git-Tag: release_1-0-14~3 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=2f683bcc8e46ad4faf224fcda218626cf3e8753b function_options::do_not_evalf_params() now actually works --- diff --git a/ginac/function.pl b/ginac/function.pl index 76025274..b72a62c1 100755 --- a/ginac/function.pl +++ b/ginac/function.pl @@ -769,28 +769,31 @@ ex function::evalf(int level) const { GINAC_ASSERT(serialevalf(level)); - ++it; + --level; + exvector::const_iterator it = seq.begin(), itend = seq.end(); + while (it != itend) { + eseq.push_back(it->evalf(level)); + ++it; + } } - - if (registered_functions()[serial].evalf_f==0) { + + if (opt.evalf_f==0) { return function(serial,eseq).hold(); } current_serial = serial; - if (registered_functions()[serial].evalf_use_exvector_args) - return ((evalf_funcp_exvector)(registered_functions()[serial].evalf_f))(seq); - switch (registered_functions()[serial].nparams) { + if (opt.evalf_use_exvector_args) + return ((evalf_funcp_exvector)(opt.evalf_f))(seq); + switch (opt.nparams) { // the following lines have been generated for max. ${maxargs} parameters ${evalf_switch_statement} // end of generated lines