Class deriv_base (o2scl)¶
-
template<class
func_t
= funct, classfp_t
= double>
classo2scl
::
deriv_base
¶ Numerical differentiation base [abstract base].
This base class does not perform any actual differentiation. Use one of the children o2scl::deriv_cern, o2scl::deriv_gsl, or o2scl::deriv_eqi instead.
This base class contains some code to automatically apply the first derivative routines to compute second or third derivatives. The error estimates for these will likely be underestimated.
- Idea for Future:
Improve the methods for second and third derivatives
- Note
Because this class template aims to automatically provide second and third derivatives, one must overload either both deriv() and deriv_int() or both deriv_err() and deriv_err_int().
- Note
If err_nonconv is set to false, and the derivative computation fails, then the functions deriv(), deriv2() and deriv3() may return the wrong result without warning. Similarly, if err_nonconv is set to false, it is the user’s responsibility to check the return value from deriv_err(), deriv2_err(), and deriv3_err() to see if an error occurred.
Public Functions
-
deriv_base
()¶
-
~deriv_base
()¶
-
fp_t
deriv
(fp_t x, func_t &func)¶ Calculate the first derivative of
func
w.r.t. x.After calling deriv(), the error may be obtained from get_err().
-
int
deriv_err
(fp_t x, func_t &func, fp_t &dfdx, fp_t &err) = 0¶ Calculate the first derivative of
func
w.r.t. x and the uncertainty.
-
int
deriv2_err
(fp_t x, func_t &func, fp_t &d2fdx2, fp_t &err)¶ Calculate the second derivative of
func
w.r.t. x and the uncertainty.
-
int
deriv3_err
(fp_t x, func_t &func, fp_t &d3fdx3, fp_t &err)¶ Calculate the third derivative of
func
w.r.t. x and the uncertainty.
-
const char *
type
()¶ Return string denoting type (“deriv”)
Public Members
-
bool
err_nonconv
¶ If true, call the error handler if the routine does not “converge”.
-
int
verbose
¶ Output control.
Protected Functions
-
fp_t
deriv_int
(fp_t x, internal_func_t &func)¶ Calculate the first derivative of
func
w.r.t. x.This is an internal version of deriv() which is used in computing second and third derivatives
-
int
deriv_err_int
(fp_t x, internal_func_t &func, fp_t &dfdx, fp_t &err) = 0¶ Calculate the first derivative of
func
w.r.t. x and the uncertainty.This is an internal version of deriv_err() which is used in computing second and third derivatives
Protected Attributes
-
bool
from_deriv
¶ Avoids infinite loops in case the user calls the base class version.
-
struct
dpars
¶ A structure for passing the function to second and third derivatives [protected].