MINT2
symPolyTerm.h
Go to the documentation of this file.
1 #ifndef MINT_SYM_POLY_TERM_HH
2 #define MINT_SYM_POLY_TERM_HH
3 
4 #include <vector>
5 #include <iostream>
6 
7 class symPolyTerm{
8  std::vector<int> _powers;
9 
10  std::vector< std::vector<int> > _allPermutations;
11 
12  std::string _name;
13 
14  bool init();
15  void makeName();
16  void makeAllPermutations();
17 
18  public:
19  symPolyTerm(const std::vector<int>& pos);
20  symPolyTerm(int a);
21  symPolyTerm(int a, int b);
22  symPolyTerm(int a, int b, int c);
23  symPolyTerm(int a, int b, int c, int d);
24  symPolyTerm(int a, int b, int c, int d, int e);
25  symPolyTerm(int a, int b, int c, int d, int e, int f);
26 
27  symPolyTerm(const symPolyTerm& other);
28 
30 
31  void print(std::ostream& os = std::cout) const;
32 
33  double eval(double x, double y)const;
34  double eval(double x, double y, double z)const;
35  double eval(double x, double y, double z
36  , double u)const;
37  double eval(double x, double y, double z
38  , double u, double v)const;
39  double eval(double x, double y, double z
40  , double u, double v, double w)const;
41  double eval(const std::vector<double>& x)const;
42  double eval(const std::vector<double* >& x)const;
43  double eval(const std::vector<const double* >& x)const;
44 
45  const std::string& name() const{return _name;}
46 };
47 
48 std::ostream& operator<<(std::ostream& os, const symPolyTerm& spt);
49 
50 #endif
51 //
const std::string & name() const
Definition: symPolyTerm.h:45
std::vector< int > _powers
Definition: symPolyTerm.h:8
std::string _name
Definition: symPolyTerm.h:12
void makeAllPermutations()
Definition: symPolyTerm.cpp:87
void makeName()
Definition: symPolyTerm.cpp:80
void print(std::ostream &os=std::cout) const
std::ostream & operator<<(std::ostream &os, const symPolyTerm &spt)
double eval(double x, double y) const
std::vector< std::vector< int > > _allPermutations
Definition: symPolyTerm.h:10
symPolyTerm(const std::vector< int > &pos)
Definition: symPolyTerm.cpp:10