SHOGUN  v2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
brent.h
Go to the documentation of this file.
1 #include <vector>
2 namespace shogun
3 {
4 #ifndef DOXYGEN_SHOULD_SKIP_THIS
5 class func_base{
6 public:
7  virtual double operator() (double) = 0;
8 };
9 
10 class monicPoly : public func_base {
11 public:
12  std::vector<double> coeff;
13  virtual double operator() (double x);
14 // constructors:
15  monicPoly(const size_t degree)
16  : coeff(degree) {}
17  monicPoly(const std::vector<double>& v)
18  : coeff(v) {}
19  monicPoly(const double* c, size_t degree)
20  : coeff(std::vector<double>(c, c+degree)) {}
21 };
22 
23 class Poly : public func_base {
24 public:
25  std::vector<double> coeff; // a vector of size nterms i.e. 1+degree
26  virtual double operator() (double x);
27 // constructors:
28  Poly(const size_t degree)
29  : coeff(1+degree) {}
30  Poly(const std::vector<double>& v)
31  : coeff(v) {}
32  Poly(const double* c, size_t degree)
33  : coeff(std::vector<double>(c, 1+c+degree)) {}
34 };
35 
36 double glomin ( double a, double b, double c, double m, double e, double t,
37  func_base& f, double &x );
38 double local_min ( double a, double b, double t, func_base& f,
39  double &x );
40 double local_min_rc ( double &a, double &b, int &status, double value );
41 double r8_abs ( double x );
42 double r8_epsilon ( );
43 double r8_max ( double x, double y );
44 double r8_sign ( double x );
45 void timestamp ( );
46 double zero ( double a, double b, double t, func_base& f );
47 void zero_rc ( double a, double b, double t, double &arg, int &status,
48  double value );
49 
50 // === simple wrapper functions
51 // === for convenience and/or compatibility
52 double glomin ( double a, double b, double c, double m, double e, double t,
53  double f ( double x ), double &x );
54 double local_min ( double a, double b, double t, double f ( double x ),
55  double &x );
56 double zero ( double a, double b, double t, double f ( double x ) );
57 #endif
58 }

SHOGUN Machine Learning Toolbox - Documentation