21 #ifndef MYGSL_CONVOLUTION_FUNCTION_H 22 #define MYGSL_CONVOLUTION_FUNCTION_H 28 #include <boost/noncopyable.hpp> 42 class convolution_function
44 :
public i_unary_function
45 ,
private boost::noncopyable
55 std::size_t size_ = 1000);
60 std::size_t size_ = 1000);
100 virtual void tree_dump(std::ostream & out_ = std::clog,
101 const std::string & title_ =
"",
102 const std::string & indent_ =
"",
103 bool inherit_ =
false)
const;
120 void print(std::ostream & = std::clog,
const std::string & title_ =
"")
const;
125 virtual double _eval(
double)
const;
142 double _eval(
double x_)
const;
152 std::size_t _limit_ = 0;
156 gsl_pimpl * _gsl_work_ =
nullptr;
165 #endif // MYGSL_CONVOLUTION_FUNCTION_H virtual void tree_dump(std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
Smart printing.
void set_f(const i_unary_function &)
Set the first functor.
double get_non_zero_domain_min() const
The minimum bound of the non-zero domain.
virtual void initialize(const datatools::properties &config_, const unary_function_dict_type &functors_)
Initialization from a container of parameters and a dictionary of functors.
void print(std::ostream &=std::clog, const std::string &title_="") const
Smart print.
static double convolution_func(double t_, void *params_)
Interface integrand function for GSL function.
convolution_function()
Default constructor.
virtual double _eval(double) const
Function interface.
Convolution function.
Definition: convolution_function.h:43
const i_unary_function & get_g() const
Return the second functor.
void set_g(const i_unary_function &)
Set the second functor.
virtual bool is_initialized() const
Check initialization status.
void set_limit(std::size_t size_)
Set limit.
i_unary_function(double epsilon_=0.0)
Constructor.
void reset()
Reset the function.
Abstract interface for unary functions : R -> R.
Definition: i_unary_function.h:44
convolution_term(const convolution_function &cf_, double t_)
Constructor.
Smart handle to an unary function object.
Definition: unary_function_utils.h:33
bool has_f() const
Check the first functor.
bool has_g() const
Check the second functor.
Top-level namespace of the Bayeux/mygsl module library.
Definition: base_decay_driver.h:47
std::map< std::string, unary_function_handle_type > unary_function_dict_type
Alias for dictionary of handles to unary function objects.
Definition: unary_function_utils.h:30
#define MYGSL_UNARY_FUNCTOR_REGISTRATION_INTERFACE(UnaryFunctorClass)
Definition: i_unary_function.h:206
double get_non_zero_domain_max() const
The minimum bound of the non-zero domain.
double _eval(double x_) const
Evaluation.
const i_unary_function & get_f() const
Return the first functor.
datatools::handle< const i_unary_function > const_unary_function_handle_type
Alias for a handle to a const unary function object.
Definition: unary_function_utils.h:27
virtual ~convolution_function()
Destructor.
std::size_t get_limit() const
Return the limit.
Interface parameters for GSL function.
Definition: convolution_function.h:106