Geant4
10.03
|
#include <c2_function.hh>
Public Member Functions | |
c2_sum_p (const c2_function< float_type > &left, const c2_function< float_type > &right) | |
construct left + right More... | |
c2_sum_p () | |
Create a stub just for the combiner to avoid statics. More... | |
Public Member Functions inherited from c2_binary_function< float_type > | |
virtual float_type | value_with_derivatives (float_type x, float_type *yprime, float_type *yprime2) const throw (c2_exception) |
get the value and derivatives. More... | |
virtual | ~c2_binary_function () |
destructor releases ownership of member functions More... | |
Public Member Functions inherited from c2_function< float_type > | |
const std::string | cvs_header_vers () const |
get versioning information for the header file More... | |
const std::string | cvs_file_vers () const |
get versioning information for the source file More... | |
virtual | ~c2_function () |
destructor More... | |
float_type | operator() (float_type x) const throw (c2_exception) |
evaluate the function in the classic way, ignoring derivatives. More... | |
float_type | operator() (float_type x, float_type *yprime, float_type *yprime2) const throw (c2_exception) |
get the value and derivatives. More... | |
float_type | find_root (float_type lower_bracket, float_type upper_bracket, float_type start, float_type value, int *error=0, float_type *final_yprime=0, float_type *final_yprime2=0) const throw (c2_exception) |
solve f(x)==value very efficiently, with explicit knowledge of derivatives of the function More... | |
float_type | partial_integrals (std::vector< float_type > xgrid, std::vector< float_type > *partials=0, float_type abs_tol=1e-12, float_type rel_tol=1e-12, int derivs=2, bool adapt=true, bool extrapolate=true) const throw (c2_exception) |
solve f(x)=value partial_integrals uses a method with an error O(dx**10) with full information from the derivatives, and falls back to lower order methods if informed of incomplete derivatives. It uses exact midpoint splitting of the intervals for recursion, resulting in no recomputation of the function during recursive descent at previously computed points. More... | |
float_type | integral (float_type amin, float_type amax, std::vector< float_type > *partials=0, float_type abs_tol=1e-12, float_type rel_tol=1e-12, int derivs=2, bool adapt=true, bool extrapolate=true) const throw (c2_exception) |
a fully-automated integrator which uses the information provided by the get_sampling_grid() function to figure out what to do. More... | |
c2_piecewise_function_p < float_type > * | adaptively_sample (float_type amin, float_type amax, float_type abs_tol=1e-12, float_type rel_tol=1e-12, int derivs=2, std::vector< float_type > *xvals=0, std::vector< float_type > *yvals=0) const throw (c2_exception) |
create a c2_piecewise_function_p from c2_connector_function_p segments which is a representation of the parent function to the specified accuracy, but maybe much cheaper to evaluate More... | |
float_type | xmin () const |
float_type | xmax () const |
void | set_domain (float_type amin, float_type amax) |
size_t | get_evaluations () const |
and sampler do increment it. More... | |
void | reset_evaluations () const |
reset the counter More... | |
void | increment_evaluations () const |
count evaluations More... | |
bool | check_monotonicity (const std::vector< float_type > &data, const char message[]) const throw (c2_exception) |
check that a vector is monotonic, throw an exception if not, and return a flag if it is reversed More... | |
virtual void | set_sampling_grid (const std::vector< float_type > &grid) throw (c2_exception) |
establish a grid of 'interesting' points on the function. More... | |
std::vector< float_type > * | get_sampling_grid_pointer () const |
get the sampling grid, which may be a null pointer More... | |
virtual void | get_sampling_grid (float_type amin, float_type amax, std::vector< float_type > &grid) const |
void | preen_sampling_grid (std::vector< float_type > *result) const |
The grid is modified in place. More... | |
void | refine_sampling_grid (std::vector< float_type > &grid, size_t refinement) const |
c2_function< float_type > & | normalized_function (float_type amin, float_type amax, float_type norm=1.0) const throw (c2_exception) |
create a new c2_function from this one which is normalized on the interval More... | |
c2_function< float_type > & | square_normalized_function (float_type amin, float_type amax, float_type norm=1.0) const throw (c2_exception) |
c2_function< float_type > & | square_normalized_function (float_type amin, float_type amax, const c2_function< float_type > &weight, float_type norm=1.0) const throw (c2_exception) |
create a new c2_function from this one which is square-normalized with the provided weight on the interval More... | |
c2_sum_p< float_type > & | operator+ (const c2_function< float_type > &rhs) const |
factory function to create a c2_sum_p from a regular algebraic expression. More... | |
c2_diff_p< float_type > & | operator- (const c2_function< float_type > &rhs) const |
factory function to create a c2_diff_p from a regular algebraic expression. More... | |
c2_product_p< float_type > & | operator* (const c2_function< float_type > &rhs) const |
factory function to create a c2_product_p from a regular algebraic expression. More... | |
c2_ratio_p< float_type > & | operator/ (const c2_function< float_type > &rhs) const |
c2_composed_function_p < float_type > & | operator() (const c2_function< float_type > &inner) const |
compose this function outside another. More... | |
float_type | get_trouble_point () const |
Find out where a calculation ran into trouble, if it got a nan. If the most recent computation did not return a nan, this is undefined. More... | |
void | claim_ownership () const |
increment our reference count. Destruction is only legal if the count is zero. More... | |
size_t | release_ownership_for_return () const throw (c2_exception) |
decrement our reference count. Do not destroy at zero. More... | |
void | release_ownership () const throw (c2_exception) |
size_t | count_owners () const |
get the reference count, mostly for debugging More... | |
void | fill_fblock (c2_fblock< float_type > &fb) const throw (c2_exception) |
fill in a c2_fblock<float_type>... a shortcut for the integrator & sampler More... | |
Static Public Member Functions | |
static float_type | combine (const c2_function< float_type > &left, const c2_function< float_type > &right, float_type x, float_type *yprime, float_type *yprime2) throw (c2_exception) |
execute math necessary to do addition More... | |
Additional Inherited Members | |
Public Attributes inherited from c2_binary_function< float_type > | |
float_type(*const | combine )(const c2_function< float_type > &left, const c2_function< float_type > &right, float_type x, float_type *yprime, float_type *yprime2) |
Protected Member Functions inherited from c2_binary_function< float_type > | |
c2_binary_function (float_type(*combiner)(const c2_function< float_type > &left, const c2_function< float_type > &right, float_type x, float_type *yprime, float_type *yprime2), const c2_function< float_type > &left, const c2_function< float_type > &right) | |
c2_binary_function (float_type(*combiner)(const c2_function< float_type > &left, const c2_function< float_type > &right, float_type x, float_type *yprime, float_type *yprime2)) | |
Protected Member Functions inherited from c2_function< float_type > | |
c2_function (const c2_function< float_type > &src) | |
c2_function () | |
virtual void | set_sampling_grid_pointer (std::vector< float_type > &grid) |
Protected Attributes inherited from c2_binary_function< float_type > | |
const c2_const_ptr< float_type > | Left |
const c2_const_ptr< float_type > | Right |
bool | stub |
Protected Attributes inherited from c2_function< float_type > | |
std::vector< float_type > * | sampling_grid |
bool | no_overwrite_grid |
float_type | fXMin |
float_type | fXMax |
size_t | evaluations |
float_type | bad_x_point |
this point may be used to record where a calculation ran into trouble More... | |
Definition at line 80 of file c2_function.hh.
|
inline |
construct left + right
left | the left function |
right | the right function |
Definition at line 1102 of file c2_function.hh.
Create a stub just for the combiner to avoid statics.
Definition at line 1106 of file c2_function.hh.
|
inlinestatic |
execute math necessary to do addition
Definition at line 1109 of file c2_function.hh.