39 #ifndef __has_c2_factory_hh
40 #define __has_c2_factory_hh 1
118 bool auto_center, float_type y1)
123 float_type x0, float_type y0, float_type yp0, float_type ypp0,
124 float_type x2, float_type y2, float_type yp2, float_type ypp2,
125 bool auto_center, float_type y1)
127 x0, y0, yp0, ypp0, x2, y2, yp2, ypp2, auto_center, y1); }
151 &
linear(float_type x0, float_type y0, float_type slope)
155 float_type x0, float_type y0, float_type xcoef, float_type x2coef)
168 template <
template <
typename f_t>
class Final >
170 & inverse_integrated_density_bins(
const std::vector<float_type> &bincenters,
171 const std::vector<float_type> &binheights)
174 return ::inverse_integrated_density_bins<float_type, Final<float_type> >
175 (bincenters, binheights);
179 template <
template <
typename f_t>
class Final >
181 & inverse_integrated_density_function(
182 const std::vector<float_type> &bincenters,
186 return ::inverse_integrated_density_function<float_type,
188 (bincenters, binheights);
static c2_classic_function_p< float_type > & classic_function(float_type(*c_func)(float_type))
make a *new object
Create a very lightweight method to return a scalar multiple of another function. \ \The factory func...
static lin_log_interpolating_function_p< float_type > & lin_log_interpolating_function()
make a *new object
a container into which any conventional c-style function can be dropped, to create a degenerate c2_fu...
compute tan(x) with its derivatives.The factory function c2_factory::tan() creates *new c2_tan_p ...
create the formal inverse function of another functionfor example, given a c2_function f ...
create a linear mapping of another functionfor example, given a c2_function f
static c2_const_plugin_function_p< float_type > & const_plugin_function()
make a *new object
A spline with X in reciprocal space and Y transformed in log space.Most useful for thermodynamic type...
static c2_power_law_p< float_type > & power_law(float_type scale, float_type power)
make a *new object
static arrhenius_interpolating_function_p< float_type > & arrhenius_interpolating_function()
make a *new object
static c2_tan_p< float_type > & tan()
make a *new object
compute cos(x) with its derivatives.The factory function c2_factory::cos() creates *new c2_cos_p ...
compute exp(x) with its derivatives.The factory function c2_factory::exp() creates *new c2_exp_p ...
static c2_plugin_function_p< float_type > & plugin_function()
make a *new object
Provides the headers for the general c2_function algebra which supports fast, flexible operations on ...
A spline with X and Y transformed into log space.Most useful for functions looking like y=x^n or any ...
compute scale/x with its derivatives.The factory function c2_factory::recip() creates *new c2_recip_p...
static c2_connector_function_p< float_type > & connector_function(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)
make a *new object
create a cubic spline interpolation of a set of (x,y) pairsThis is one of the main reasons for c2_fun...
A spline with X transformed into log space.Most useful for functions looking like y=log(x) or any oth...
static c2_connector_function_p< float_type > & connector_function(float_type x0, const c2_function< float_type > &f0, float_type x2, const c2_function< float_type > &f2, bool auto_center, float_type y1)
make a *new object
A container into which any other c2_function can be dropped.It allows a function to be pre-evaluated ...
structure used to hold evaluated function data at a point.
a c2_plugin_function_p which promises not to fiddle with the plugged function.The factory function c2...
compute x with its derivatives.The factory function c2_factory::identity() creates *new c2_identity_p...
static c2_plugin_function_p< float_type > & plugin_function(c2_function< float_type > &f)
make a *new object
static c2_const_plugin_function_p< float_type > & const_plugin_function(const c2_function< float_type > &f)
make a *new object
static c2_constant_p< float_type > & constant(float_type x)
make a *new object
a container into which any other c2_function can be dropped, to allow expressions with replacable com...
static c2_recip_p< float_type > & recip(float_type scale=1)
make a *new object
static c2_identity_p< float_type > & identity()
make a *new object
the exception class for c2_function operations.
static log_lin_interpolating_function_p< float_type > & log_lin_interpolating_function()
make a *new object
create a c2_function which smoothly connects two other c2_functions.This takes two points and generat...
static log_log_interpolating_function_p< float_type > & log_log_interpolating_function()
make a *new object
the parent class for all c2_functions.c2_functions know their value, first, and second derivative at ...
static c2_log_p< float_type > & log()
make a *new object
static c2_linear_p< float_type > & linear(float_type x0, float_type y0, float_type slope)
make a *new object
A spline with Y transformed into log space.Most useful for functions looking like y=exp(x) ...
a factory of pre-templated c2_function generators
static c2_inverse_function_p< float_type > & inverse_function(const c2_function< float_type > &source)
make a *new object
static c2_sqrt_p< float_type > & sqrt()
make a *new object
static c2_connector_function_p< float_type > & connector_function(const c2_fblock< float_type > &fb0, const c2_fblock< float_type > &fb2, bool auto_center, float_type y1)
make a *new object
static c2_cached_function_p< float_type > & cached_function(const c2_function< float_type > &func)
make a *new object
static c2_quadratic_p< float_type > & quadratic(float_type x0, float_type y0, float_type xcoef, float_type x2coef)
make a *new object
compute sqrt(x) with its derivatives.The factory function c2_factory::sqrt() creates *new c2_sqrt_p()...
static c2_scaled_function_p< float_type > & scaled_function(const c2_function< float_type > &outer, float_type scale)
make a *new object
static c2_cos_p< float_type > & cos()
make a *new object
create a quadratic mapping of another functionfor example, given a c2_function f
compute sin(x) with its derivatives.The factory function c2_factory::sin() creates *new c2_sin_p ...
static interpolating_function_p< float_type > & interpolating_function()
make a *new object
create a c2_function which is a piecewise assembly of other c2_functions.The functions must have incr...
create a power law mapping of another functionfor example, given a c2_function f
static c2_sin_p< float_type > & sin()
make a *new object
a c2_function which is constantThe factory function c2_factory::constant() creates *new c2_constant_p...
static c2_exp_p< float_type > & exp()
make a *new object
compute log(x) with its derivatives.The factory function c2_factory::log() creates *new c2_log_p ...
static c2_piecewise_function_p< float_type > & piecewise_function()
make a *new object