-
Sergi Hernandez authoredSergi Hernandez authored
gradient.h 992 B
#ifndef _GRADIENT_H
#define _GRADIENT_H
#include <vector>
#include <boost/function.hpp>
#include <functional>
#define DEFAULT_MAX_INC 0.1
class CGradient
{
private:
double max_coord_inc;
boost::function<double (double)> p_function;
boost::function<double (double)> p_function_der;
double max_coord;
double min_coord;
double value;
double coordinate;
protected:
public:
CGradient();
CGradient(double max_coord_inc);
void set_max_coord_inc(double max_inc);
double get_max_coord_inc(void);
void set_coord_constraints(double max,double min);
void get_coord_constraints(double &max,double &min);
void set_function(boost::function<double (double)> p_function);
void set_function_der(boost::function<double (double)> p_function);
bool compute(double max_func_error,unsigned int max_iter,double start_point,bool max=true);
double get_value(void);
double get_coordinate(void);
~CGradient();
};
#endif