Couenne  0.5.8
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 
21  expression *expr_;
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
Couenne::CouExpr::operator=
CouExpr & operator=(CouExpr &e)
Definition: CouExpr.hpp:32
Couenne::sin
CouExpr & sin(CouExpr &e)
Couenne::log
CouExpr & log(CouExpr &e)
Couenne::operator+
CouExpr operator+(CouExpr &e1, CouExpr &e2)
Couenne
general include file for different compilers
Definition: CouenneAggrProbing.hpp:24
Couenne::operator%
CouExpr & operator%(CouExpr &e1, CouExpr &e2)
Couenne::operator-
CouExpr & operator-(CouExpr &e1, CouExpr &e2)
Couenne::exp
CouExpr & exp(CouExpr &e)
Couenne::operator*
CouExpr & operator*(CouExpr &e1, CouExpr &e2)
Couenne::CouExpr
Definition: CouExpr.hpp:17
Couenne::operator^
CouExpr & operator^(CouExpr &e1, CouExpr &e2)
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition: CouenneTypes.hpp:100
Couenne::CouExpr::CouExpr
CouExpr(expression *e)
Definition: CouExpr.hpp:25
Couenne::CouExpr::CouExpr
CouExpr(const CouExpr &e)
Definition: CouExpr.hpp:28
CouenneExpression.hpp
Couenne::cos
CouExpr & cos(CouExpr &e)
Couenne::CouExpr::Expression
expression * Expression() const
Definition: CouExpr.hpp:37
Couenne::expression
Expression base class.
Definition: CouenneExpression.hpp:48
Couenne::operator/
CouExpr & operator/(CouExpr &e1, CouExpr &e2)