![]() |
ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
create a c2_function which is the ratio of two other c2_functions.This should always be constructed using c2_function::operator/() More...
#include <geant4/tree/geant4-10.6-release/examples/extended/electromagnetic/TestEm7/include/c2_function.hh>
Inheritance diagram for c2_ratio_p< float_type >:
Collaboration diagram for c2_ratio_p< float_type >:Public Member Functions | |
| c2_ratio_p (const c2_function< float_type > &left, const c2_function< float_type > &right) | |
| construct left / right | |
| c2_ratio_p () | |
| Create a stub just for the combiner to avoid statics. | |
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 |
| get the value and derivatives. | |
| virtual | ~c2_binary_function () |
| destructor releases ownership of member functions | |
Public Member Functions inherited from c2_function< float_type > | |
| const std::string | cvs_header_vers () const |
| get versioning information for the header file | |
| const std::string | cvs_file_vers () const |
| get versioning information for the source file | |
| virtual | ~c2_function () |
| destructor | |
| float_type | operator() (float_type x) const |
| evaluate the function in the classic way, ignoring derivatives. | |
| float_type | operator() (float_type x, float_type *yprime, float_type *yprime2) const |
| get the value and derivatives. | |
| 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 |
| solve f(x)==value very efficiently, with explicit knowledge of derivatives of the function | |
| 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 |
| 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 |
| a fully-automated integrator which uses the information provided by the get_sampling_grid() function to figure out what to do. | |
| 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 |
| 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 | |
| float_type | xmin () const |
| float_type | xmax () const |
| void | set_domain (float_type amin, float_type amax) |
| size_t | get_evaluations () const |
| void | reset_evaluations () const |
| reset the counter | |
| void | increment_evaluations () const |
| count evaluations | |
| bool | check_monotonicity (const std::vector< float_type > &data, const char message[]) const |
| check that a vector is monotonic, throw an exception if not, and return a flag if it is reversed | |
| virtual void | set_sampling_grid (const std::vector< float_type > &grid) |
| establish a grid of 'interesting' points on the function. | |
| std::vector< float_type > * | get_sampling_grid_pointer () const |
| get the sampling grid, which may be a null pointer | |
| 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. | |
| 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 |
| create a new c2_function from this one which is normalized on the interval | |
| c2_function< float_type > & | square_normalized_function (float_type amin, float_type amax, float_type norm=1.0) const |
| 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 |
| create a new c2_function from this one which is square-normalized with the provided weight on the interval | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| void | claim_ownership () const |
| increment our reference count. Destruction is only legal if the count is zero. | |
| size_t | release_ownership_for_return () const |
| decrement our reference count. Do not destroy at zero. | |
| void | release_ownership () const |
| size_t | count_owners () const |
| get the reference count, mostly for debugging | |
| void | fill_fblock (c2_fblock< float_type > &fb) const |
| fill in a c2_fblock<float_type>... a shortcut for the integrator & sampler | |
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) |
| execute math necessary to do division | |
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 Attributes inherited from c2_binary_function< float_type > | |
| const c2_const_ptr< float_type > | Left |
| const c2_const_ptr< float_type > | Right |
| bool | stub |
create a c2_function which is the ratio of two other c2_functions.
This should always be constructed using c2_function::operator/()
Definition at line 82 of file c2_function.hh.
View newest version in sPHENIX GitHub at line 82 of file c2_function.hh
|
inline |
construct left / right
| left | the left function |
| right | the right function |
Definition at line 1208 of file c2_function.hh.
View newest version in sPHENIX GitHub at line 1208 of file c2_function.hh
|
inline |
Create a stub just for the combiner to avoid statics.
Definition at line 1212 of file c2_function.hh.
View newest version in sPHENIX GitHub at line 1212 of file c2_function.hh
|
inlinestatic |
execute math necessary to do division
Definition at line 1215 of file c2_function.hh.
View newest version in sPHENIX GitHub at line 1215 of file c2_function.hh
References left, right, c2_function< float_type >::value_with_derivatives(), and y1.
Here is the call graph for this function: