Bayeux  3.4.1
Core Foundation library for SuperNEMO
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
mygsl::polynomial Class Reference

A real polynomial of arbitrary degree. More...

#include <bayeux/mygsl/polynomial.h>

Inheritance diagram for mygsl::polynomial:
mygsl::i_unary_function datatools::i_serializable datatools::i_cloneable datatools::i_tree_dumpable

Classes

class  solver
 

Public Member Functions

bool is_valid () const
 Check validity of the polynomial. More...
 
 polynomial ()
 Default constructor. More...
 
 polynomial (unsigned int sz_)
 Constructor. More...
 
 polynomial (double c0_)
 Constructor. More...
 
 polynomial (double c0_, double c1_)
 Constructor. More...
 
 polynomial (double c0_, double c1_, double c2_)
 Constructor. More...
 
 polynomial (const std::vector< double > &c_)
 Constructor. More...
 
 polynomial (const polynomial &p_)
 Constructor. More...
 
virtual ~polynomial ()
 Destructor. More...
 
void set_coefficients (const std::vector< double > &c_)
 
const std::vector< double > & get_coefficients () const
 
unsigned int get_degree () const
 
unsigned int get_ncoeffs () const
 
double get_coeff (unsigned int i_) const
 
void set_coeff (unsigned int i_, double coeff_)
 
void print (std::ostream &out_=std::clog, int format_=0, bool eol_=false) const
 
virtual bool is_initialized () const
 Check initialization status. More...
 
virtual void initialize (const datatools::properties &config_, const unary_function_dict_type &functors_)
 Initialization from a container of parameters and a dictionary of functors. More...
 
void reset ()
 Reset the polynomial. More...
 
bool make_line (double x1_, double x2_, double y1_, double y2_)
 
bool make_parabola (double x1_, double x2_, double x3_, double y1_, double y2_, double y3_)
 
virtual void tree_dump (std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
 Smart printing. More...
 
- Public Member Functions inherited from mygsl::i_unary_function
 i_unary_function (double epsilon_=0.0)
 Constructor. More...
 
virtual ~i_unary_function ()
 Destructor. More...
 
virtual bool has_explicit_domain_of_definition () const
 Check if the function has an explicit domain of definition (default: false) More...
 
virtual bool is_in_domain_of_definition (double x_) const
 Check if a value is in the domain of definition of the function (default: true) More...
 
virtual double eval (double x_) const
 The function evaluation method. More...
 
double evaluate (double x_) const
 The function evaluation method. More...
 
virtual double eval_no_check (double x_) const
 The function evaluation method with any value check. More...
 
virtual double get_non_zero_domain_min () const
 The minimum bound of the non-zero domain (default is minus infinity) More...
 
bool has_non_zero_domain_min () const
 Check the minimum bound of the non-zero domain. More...
 
virtual double get_non_zero_domain_max () const
 The maximum bound of the non-zero domain (default is plus infinity) More...
 
bool has_non_zero_domain_max () const
 Check the maximum bound of the non-zero domain. More...
 
bool is_in_non_zero_domain (double x_) const
 Check if a value is in the non-zero domain. More...
 
bool is_in_zero_domain (double x_) const
 Check if a value is in the zero domain. More...
 
bool has_zero_domain () const
 Check if the functor has an explicit zero domain. More...
 
double operator() (double x_) const
 Standard C++ functor interface. More...
 
void write_ascii (std::ostream &fout_, double min_, double max_, unsigned int nsamples_, int x_precision_=16, int fx_precision_=16, uint32_t options_=wo_default) const
 Write the (x,y=f(x)) value pairs in an ASCII stream : More...
 
void write_ascii_with_units (std::ostream &fout_, double min_, double max_, unsigned int nsamples_, double x_unit_, double fx_unit_, int x_precision_=16, int fx_precision_=16, uint32_t options_=wo_default) const
 Write the (x,y=f(x)) value pairs in an ASCII stream : More...
 
void write_ascii_file (const std::string &filename_, double min_, double max_, unsigned int nsamples_, int x_precision_=16, int fx_precision_=16, uint32_t options_=wo_default) const
 Write the (x,y=f(x)) value pairs in an ASCII file (typical Gnuplot input) : More...
 
void write_ascii_file_with_units (const std::string &filename_, double min_, double max_, unsigned int nsamples_, const std::string &x_unit_label_, const std::string &fx_unit_label_, int x_precision_=16, int fx_precision_=16, uint32_t options_=wo_default) const
 Write the (x,y=f(x)) value pairs in an ASCII file (typical Gnuplot input) : More...
 
void set_epsilon (double)
 Set the precision. More...
 
double get_epsilon () const
 Return the precision. More...
 
void initialize_simple ()
 Simple initialization. More...
 
void initialize_standalone (const datatools::properties &config_)
 Initialization from a container of parameters. More...
 
- Public Member Functions inherited from datatools::i_tree_dumpable
 i_tree_dumpable ()
 Constructor. More...
 
virtual ~i_tree_dumpable ()
 Destructor. More...
 
virtual void print_tree (std::ostream &out_=std::clog, const boost::property_tree::ptree &options_=empty_options()) const
 Main new interface method for printing. More...
 
void print_tree_json (std::ostream &out_=std::clog, const std::string &json_options_="") const
 Printing with jsonized options. More...
 
void print_tree_json (std::ostream &out_=std::clog, const char *json_options_=nullptr) const
 Printing with jsonized options. More...
 
void tree_dump_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="", const bool inherit_=false) const
 
void tree_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="") const
 
void smart_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="") const
 
- Public Member Functions inherited from datatools::i_serializable
 i_serializable ()
 Default constructor. More...
 
virtual ~i_serializable ()
 Destructor. More...
 
virtual const std::string & get_serial_tag () const =0
 Return the serialization string identifier of the class. More...
 
- Public Member Functions inherited from datatools::i_cloneable
virtual i_cloneableclone (void) const =0
 
virtual ~i_cloneable ()
 
template<class CandidateType >
bool is_cloneable (const CandidateType &candidate_)
 

Static Public Member Functions

static bool solve_linear (double p0_, double p1_, unsigned int &nsols_, double &x0_)
 
static bool solve_quadratic (double p0_, double p1_, double p2_, unsigned int &nsols_, double &x0_, double &x1_)
 
static bool solve_cubic (double p0_, double p1_, double p2_, unsigned int &nsols_, double &x0_, double &x1_, double &x2_)
 
static bool solve_cubic (double p0_, double p1_, double p2_, double p3_, unsigned int &nsols_, double &x0_, double &x1_, double &x2_)
 
static bool compute_parabola (double x1_, double x2_, double x3_, double y1_, double y2_, double y3_, double &p2_, double &p1_, double &p0_)
 
static bool compute_line (double x1_, double x2_, double y1_, double y2_, double &p1_, double &p0_)
 
- Static Public Member Functions inherited from mygsl::i_unary_function
static double g_function (double x_, void *functor_)
 A generic static function to feed the GSL gsl_function interface: More...
 
- Static Public Member Functions inherited from datatools::i_tree_dumpable
static const boost::property_tree::ptree & empty_options ()
 
static boost::property_tree::ptree make_base_print_options (const std::string &title_, const std::string &indent_="", const bool inherit_=false)
 
static std::ostream & last_skip_tag (std::ostream &out_)
 
static std::ostream & skip_tag (std::ostream &out_)
 
static std::ostream & last_tag (std::ostream &out_)
 
static std::ostream & tag (std::ostream &out_)
 
- Static Public Member Functions inherited from datatools::i_cloneable
template<class Copyable >
static Copyable * clone_it (const Copyable &a_copyable)
 

Protected Member Functions

double _eval (double x_) const
 The function evaluation abstract method. More...
 
- Protected Member Functions inherited from mygsl::i_unary_function
void _base_initialize (const datatools::properties &config_, const unary_function_dict_type &functors_)
 
void _base_reset ()
 
void _compute_auto_epsilon ()
 
void _set_defaults ()
 Set defaults attributes. More...
 

Additional Inherited Members

- Public Types inherited from mygsl::i_unary_function
enum  write_options_type {
  wo_none = 0, wo_data_index = 0x1, wo_skip_nan = 0x2, wo_skip_inf = 0x4,
  wo_skip_onzd = 0x8, wo_skip_odod = 0x10, wo_append = 0x20, wo_default = wo_none
}
 Options for writing sampled function in an ASCII stream. More...
 
- Public Types inherited from datatools::i_tree_dumpable
enum  ostream_type { OSTREAM_COUT = 1, OSTREAM_CERR = 2, OSTREAM_CLOG = 3 }
 Enumeration for standard output streams. More...
 
- Static Public Attributes inherited from mygsl::i_unary_function
static const double DEFAULT_EPSILON
 Default error. More...
 
static const double AUTO_EPSILON
 Value for automatic computation of the error. More...
 

Detailed Description

A real polynomial of arbitrary degree.

Constructor & Destructor Documentation

◆ polynomial() [1/7]

mygsl::polynomial::polynomial ( )

Default constructor.

◆ polynomial() [2/7]

mygsl::polynomial::polynomial ( unsigned int  sz_)
explicit

Constructor.

◆ polynomial() [3/7]

mygsl::polynomial::polynomial ( double  c0_)
explicit

Constructor.

◆ polynomial() [4/7]

mygsl::polynomial::polynomial ( double  c0_,
double  c1_ 
)

Constructor.

◆ polynomial() [5/7]

mygsl::polynomial::polynomial ( double  c0_,
double  c1_,
double  c2_ 
)

Constructor.

◆ polynomial() [6/7]

mygsl::polynomial::polynomial ( const std::vector< double > &  c_)

Constructor.

◆ polynomial() [7/7]

mygsl::polynomial::polynomial ( const polynomial p_)

Constructor.

◆ ~polynomial()

virtual mygsl::polynomial::~polynomial ( )
virtual

Destructor.

Member Function Documentation

◆ _eval()

double mygsl::polynomial::_eval ( double  x_) const
protectedvirtual

The function evaluation abstract method.

Implements mygsl::i_unary_function.

◆ compute_line()

static bool mygsl::polynomial::compute_line ( double  x1_,
double  x2_,
double  y1_,
double  y2_,
double &  p1_,
double &  p0_ 
)
static

Given two doublets (x1, y1), (x2, y2), compute the coefficients of the polynomial of degree 1 (line) that matches the points:

P(x) = p0 + p1 x^1

◆ compute_parabola()

static bool mygsl::polynomial::compute_parabola ( double  x1_,
double  x2_,
double  x3_,
double  y1_,
double  y2_,
double  y3_,
double &  p2_,
double &  p1_,
double &  p0_ 
)
static

Given three doublets (x1, y1), (x2, y2), (x3, y3), compute the coefficients of the polynomial of degree 2 (parabola) that matches the points:

P(x) = p0 + p1 x^1 + p2 x^2

◆ get_coeff()

double mygsl::polynomial::get_coeff ( unsigned int  i_) const

◆ get_coefficients()

const std::vector<double>& mygsl::polynomial::get_coefficients ( ) const

◆ get_degree()

unsigned int mygsl::polynomial::get_degree ( ) const

◆ get_ncoeffs()

unsigned int mygsl::polynomial::get_ncoeffs ( ) const

◆ initialize()

virtual void mygsl::polynomial::initialize ( const datatools::properties config_,
const unary_function_dict_type functors_ 
)
virtual

Initialization from a container of parameters and a dictionary of functors.

Reimplemented from mygsl::i_unary_function.

◆ is_initialized()

virtual bool mygsl::polynomial::is_initialized ( ) const
virtual

Check initialization status.

Reimplemented from mygsl::i_unary_function.

◆ is_valid()

bool mygsl::polynomial::is_valid ( ) const

Check validity of the polynomial.

◆ make_line()

bool mygsl::polynomial::make_line ( double  x1_,
double  x2_,
double  y1_,
double  y2_ 
)

◆ make_parabola()

bool mygsl::polynomial::make_parabola ( double  x1_,
double  x2_,
double  x3_,
double  y1_,
double  y2_,
double  y3_ 
)

◆ print()

void mygsl::polynomial::print ( std::ostream &  out_ = std::clog,
int  format_ = 0,
bool  eol_ = false 
) const

◆ reset()

void mygsl::polynomial::reset ( )
virtual

Reset the polynomial.

Reimplemented from mygsl::i_unary_function.

◆ set_coeff()

void mygsl::polynomial::set_coeff ( unsigned int  i_,
double  coeff_ 
)

◆ set_coefficients()

void mygsl::polynomial::set_coefficients ( const std::vector< double > &  c_)

◆ solve_cubic() [1/2]

static bool mygsl::polynomial::solve_cubic ( double  p0_,
double  p1_,
double  p2_,
unsigned int &  nsols_,
double &  x0_,
double &  x1_,
double &  x2_ 
)
static

◆ solve_cubic() [2/2]

static bool mygsl::polynomial::solve_cubic ( double  p0_,
double  p1_,
double  p2_,
double  p3_,
unsigned int &  nsols_,
double &  x0_,
double &  x1_,
double &  x2_ 
)
static

◆ solve_linear()

static bool mygsl::polynomial::solve_linear ( double  p0_,
double  p1_,
unsigned int &  nsols_,
double &  x0_ 
)
static

◆ solve_quadratic()

static bool mygsl::polynomial::solve_quadratic ( double  p0_,
double  p1_,
double  p2_,
unsigned int &  nsols_,
double &  x0_,
double &  x1_ 
)
static

◆ tree_dump()

virtual void mygsl::polynomial::tree_dump ( std::ostream &  out_ = std::clog,
const std::string &  title_ = "",
const std::string &  indent_ = "",
bool  inherit_ = false 
) const
virtual

Smart printing.

Reimplemented from mygsl::i_unary_function.


The documentation for this class was generated from the following file: