2004-08-24 David Bateman * NLEqn-opt.in, DASPK-opts.in, DASRT-opts.in, DASSL-opts.in LSODE-opts.in, ODESSA-opts.in: Add "jacobian" option * ODESSA-opts.in: Add "inhomogeneity" option * DAEFunc.h (*DAERHSFuncCached, *DAEJacFuncCached): Function pointer for cached versions of function so that ires and cj args can always be passed. (DAEFunc::DAEFunc): Correctly initialize cached versions of the functions in the constructors (function_cached, jacobian_function_cached): Return cached version of user function and jacobian. (set_function_cached, set_jacobian_function_cached): Function to set the cached versions of the user function and jacobian. (fun_cached, jac_cached): The stored cached version of the user function and jacobian * ODESFunc.h (*ODES_fsub_cached, *ODES_bsub_cached, *ODES_jsub_cached): Function pointers for cached versions of functions so that the column for the inhomogeneity function can always be passed (ODESFunc::ODESFunc): Correctly initialize cached versions of the functions in the constructors (fsub_function_cached, bsub_function_cached, jsub_function_cached): Return cached version of user function inhomogeneity and jacobian. (set_fsub_function_cached, set_bsub_function_cached, set_jsub_function_cached): Function to set the cached versions of the user function, inhomogeneity and jacobian. (fsub_cached, bsub_cached jsub_cached): The stored cached version of the user function, inhomogeneity and jacobian * DASPK.cc (ddaspk_f): Pass cj argument, select version of user function to use (ddaspk_j): Select version of user function to use (user_fun_cached, user_jac_cached): Cached version of functions (do_integrate): Set up either the normal or cached version of functions to use * DASRT.cc: Include "lo-ieee.h" (user_fsub_cached, user_jsub_cached): New cached versions of user function and jacobian (dasrt_f, dasrt_j): Select version of function to use (DASRT::integrate (double)): Set up either the normal or cached version of the functions to use * ODESSA.cc (user_fsub_cached, user_bsub_cached, user_jsub_cached): Nes cached versions of the user function, inhomogeneity and jacobian. (odessa_f, odessa_j, odessa_b): Select version of function to use (ODESSA::integrate (double)): Set up either the normal or cached version of the functions to use * DASSL.cc: Include "lo-ieee.h" (user_fsub_cached, user_jsub_cached): New cached versions of user function and jacobian (dassl_f, dassl_j): Select version of function to use (DASSL::integrate (double)): Set up either the normal or cached version of the functions to use 2004-08-24 David Bateman * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function_cached, fsolve_user_jacobian_cached): New versions of functions to allow user function to return jacobian as second return argument (Ffsolve): Update docs, allow function handles and inline inputs, destory temporary functions on exit. * DLD-FUNCTIONS/daspk.cc, DLD-FUNCTION/lsode.cc, DLD-FUNCTION/dasrt.cc, DLD-FUNCTION/dassl.cc, DLD-FUNCTION/odessa.cc: ditto. * DLD-FUNCTION/quad.cc: Allow function handle and inline functions * ov-fcn-inline.h (is_inline_function (void)): New function * ov-base.h (is_inline_function (void)): New function * ov.h (is_inline_function (void)): New virtual function * variables.cc (unique_symbol_name (const std::string&)): New function to create a unique function name from a supplied base name (clear_function (const dtd::string&)): New function to allow functions to be cleared. * variables.h (unique_symbol_name (const std::string&), clear_function (const dtd::string&)): Declare new functions * dynamic-ld.cc (do_clear_function (const std::string&)): Rename clear_function to do_clear_function to avoid conflict with version from variables.h * ov-fcn-inline.cc (octave_fcn_handle::octave_fcn_handle): Use new unique_symbol_name and clear_function functions to remove direct manipulation of the symbol table from the constructor.