| 
|   | c2_connector_function_p (float_type x0, const c2_function< float_type > &f0, float_type x2, const c2_function< float_type > &f2, bool auto_center, float_type y1) | 
|   | construct the container from two functions  More...
  | 
|   | 
|   | c2_connector_function_p (float_type x0, float_type y0, float_type yp0, float_type ypp0, float_type x2, float_type y2, float_type yp2, float_type ypp2, bool auto_center, float_type y1) | 
|   | construct the container from numerical values  More...
  | 
|   | 
|   | c2_connector_function_p (const c2_fblock< float_type > &fb0, const c2_fblock< float_type > &fb2, bool auto_center, float_type y1) | 
|   | construct the container from c2_fblock<float_type> objects  More...
  | 
|   | 
| virtual  | ~c2_connector_function_p () | 
|   | destructor  More...
  | 
|   | 
| 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...
  | 
|   | 
| 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) | 
|   | for points in xgrid, adaptively return Integral[f(x),{x,xgrid[i],xgrid[i+1]}] and return in vector, along with sum  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  | 
|   | return the lower bound of the domain for this function as set by set_domain()  More...
  | 
|   | 
| float_type  | xmax () const  | 
|   | return the upper bound of the domain for this function as set by set_domain()  More...
  | 
|   | 
| void  | set_domain (float_type amin, float_type amax) | 
|   | set the domain for this function.  More...
  | 
|   | 
| size_t  | get_evaluations () const  | 
|   | this is a counter owned by the function but which can be used to monitor efficiency of algorithms.  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  | 
|   | return the grid of 'interesting' points along this function which lie in the region requested  More...
  | 
|   | 
| void  | preen_sampling_grid (std::vector< float_type > *result) const  | 
|   | clean up endpoints on a grid of points  More...
  | 
|   | 
| void  | refine_sampling_grid (std::vector< float_type > &grid, size_t refinement) const  | 
|   | refine a grid by splitting each interval into more intervals  More...
  | 
|   | 
| 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) | 
|   | create a new c2_function from this one which is square-normalized on the interval  More...
  | 
|   | 
| 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  | 
|   | factory function to create a c2_ratio_p from a regular algebraic expression.  More...
  | 
|   | 
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) | 
|   | decrement our reference count. If the count reaches zero, destroy ourself.  More...
  | 
|   | 
| 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...
  | 
|   | 
template<typename float_type = double>
class c2_connector_function_p< float_type >
create a c2_function which smoothly connects two other c2_functions.
This takes two points and generates a polynomial which matches two c2_function arguments at those two points, with two derivatives at each point, and an arbitrary value at the center of the region. It is useful for splicing together functions over rough spots (0/0, for example). 
If auto_center is true, the value at the midpoint is computed so that the resulting polynomial is of order 5. If auto_center is false, the value y1 is used at the midpoint, resulting in a polynomial of order 6.
This is usually used in conjunction with c2_piecewise_function_p to assemble an apparently seamless function from a series of segments. 
- See Also
 - Sample Applications and Adaptive sampling
 
The factory function c2_factory::connector_function() creates *new c2_connector_function_p 
Definition at line 1996 of file c2_function.hh.