blob: 650f5882aec91ebf1717629d83306afbead993b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#ifndef STRMODEL1D_HPP
#define STRMODEL1D_HPP
#define OPT_HEADER
#include <core/fitter.hpp>
#include <cmath>
#include <sstream>
#include <cassert>
#include <muParser/muParser.h>
#include <vector>
#include <string>
class strmodel1d
:public opt_utilities::model<double,double,std::vector<double>,std::string>
{
private:
mu::Parser mp;
strmodel1d* do_clone()const;
std::vector<double> par_vec;
std::vector<std::string> par_names;
std::string expr;
std::string var_name;
double x;
void set_buildin_fun();
const char* do_get_type_name()const
{
return "parse a string as a model";
}
public:
double do_eval(const double& x,const std::vector<double>& p);
strmodel1d();
strmodel1d(const strmodel1d& rhs);
strmodel1d& operator=(const strmodel1d& rhs);
void set_expr(const std::string& _expr,
const std::vector<std::string>& _par_names,
const std::string& _var_name);
};
#endif
//EOF
|