Couenne  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CouExpr.hpp
Go to the documentation of this file.
1 /* $Id: CouExpr.hpp 490 2011-01-14 16:07:12Z pbelotti $
2  *
3  * Name: CouExpr.hpp
4  * Author: Pietro Belotti
5  * Purpose: Container class for expressions
6  *
7  * This file is licensed under the Eclipse Public License (EPL)
8  */
9 
10 #ifndef CouExpr_hpp
11 #define CouExpr_hpp
12 
13 #include "CouenneExpression.hpp"
14 
15 namespace Couenne {
16 
17 class CouExpr {
18 
19 private:
20 
22 
23 public:
24 
26  expr_ (e) {}
27 
28  CouExpr (const CouExpr &e) {
29  expr_ = e.expr_ -> clone ();
30  }
31 
33  expr_ = e.expr_ -> clone ();
34  return *this;
35  }
36 
38  {return expr_;}
39 };
40 
41 
42 CouExpr operator+(CouExpr &e1, CouExpr &e2);
43 CouExpr &operator/(CouExpr &e1, CouExpr &e2);
44 CouExpr &operator%(CouExpr &e1, CouExpr &e2);
45 CouExpr &operator-(CouExpr &e1, CouExpr &e2);
46 CouExpr &operator*(CouExpr &e1, CouExpr &e2);
47 CouExpr &operator^(CouExpr &e1, CouExpr &e2);
48 
49 CouExpr &sin(CouExpr &e);
50 CouExpr &cos(CouExpr &e);
51 CouExpr &log(CouExpr &e);
52 CouExpr &exp(CouExpr &e);
53 
54 CouExpr &operator+(CouNumber &e1, CouExpr &e2);
55 CouExpr &operator/(CouNumber &e1, CouExpr &e2);
56 CouExpr &operator%(CouNumber &e1, CouExpr &e2);
57 CouExpr &operator-(CouNumber &e1, CouExpr &e2);
58 CouExpr &operator*(CouNumber &e1, CouExpr &e2);
59 CouExpr &operator^(CouNumber &e1, CouExpr &e2);
60 
61 CouExpr &sin(CouNumber &e);
62 CouExpr &cos(CouNumber &e);
63 CouExpr &log(CouNumber &e);
64 CouExpr &exp(CouNumber &e);
65 
66 CouExpr &operator+(CouExpr &e1, CouNumber &e2);
67 CouExpr &operator/(CouExpr &e1, CouNumber &e2);
68 CouExpr &operator%(CouExpr &e1, CouNumber &e2);
69 CouExpr &operator-(CouExpr &e1, CouNumber &e2);
70 CouExpr &operator*(CouExpr &e1, CouNumber &e2);
71 CouExpr &operator^(CouExpr &e1, CouNumber &e2);
72 
73 }
74 
75 #endif
CouExpr(const CouExpr &e)
Definition: CouExpr.hpp:28
CouExpr & log(CouExpr &e)
CouExpr(expression *e)
Definition: CouExpr.hpp:25
CouExpr & operator%(CouExpr &e1, CouExpr &e2)
CouExpr & exp(CouExpr &e)
CouExpr & operator*(CouExpr &e1, CouExpr &e2)
expression * expr_
Definition: CouExpr.hpp:21
CouExpr & operator^(CouExpr &e1, CouExpr &e2)
CouExpr & operator/(CouExpr &e1, CouExpr &e2)
double CouNumber
main number type in Couenne
Expression base class.
CouExpr & cos(CouExpr &e)
CouExpr operator+(CouExpr &e1, CouExpr &e2)
CouExpr & operator=(CouExpr &e)
Definition: CouExpr.hpp:32
CouExpr & sin(CouExpr &e)
expression * Expression() const
Definition: CouExpr.hpp:37
CouExpr & operator-(CouExpr &e1, CouExpr &e2)