Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
tmp
OS-2.10.2
Couenne
src
expression
CouenneExprClone.hpp
Go to the documentation of this file.
1
/* $Id: CouenneExprClone.hpp 645 2011-06-14 10:04:49Z pbelotti $
2
*
3
* Name: exprClone.hpp
4
* Author: Pietro Belotti
5
* Purpose: definition of the clone class (different from exprCopy in
6
* that evaluation is propagated)
7
*
8
* (C) Carnegie-Mellon University, 2006.
9
* This file is licensed under the Eclipse Public License (EPL)
10
*/
11
12
#ifndef COUENNE_EXPRCLONE_HPP
13
#define COUENNE_EXPRCLONE_HPP
14
15
#include <iostream>
16
17
#include "
CouenneTypes.hpp
"
18
#include "
CouenneExprCopy.hpp
"
19
20
namespace
Couenne {
21
23
24
class
exprClone
:
public
exprCopy
{
25
26
public
:
27
29
exprClone
(
expression
*copy):
30
exprCopy
(
getOriginal
(copy)) {}
31
33
exprClone
(
const
exprClone
&
e
,
Domain
*d = NULL):
34
//{copy_ = e.copy_;}// d = e.domain_;}
35
exprCopy
(e, d) {}
36
38
expression
*
clone
(
Domain
*d = NULL)
const
39
{
return
new
exprClone
(*
this
, d);}
40
/*{
41
if (copy_ != Original ()) return copy_ -> clone (d);
42
else return new exprClone (*this, d);
43
}*/
44
//{return copy_ -> Original () -> clone (d);}
45
47
virtual
~exprClone
() {
48
//if (copy_ != Original ())
49
//delete copy_;
50
copy_
= NULL;
// unlink pointer so that ~exprCopy does nothing
51
}
52
54
virtual
void
print
(std::ostream &out = std::cout,
55
bool
descend =
false
)
const
;
56
58
inline
CouNumber
Value
()
const
59
{
return
copy_
->
Value
();}
60
62
inline
CouNumber
operator ()
()
63
{
return
((*
copy_
) ());}
64
};
65
66
}
67
68
#endif
Couenne::exprClone::exprClone
exprClone(expression *copy)
Constructor.
Definition:
CouenneExprClone.hpp:29
Couenne::getOriginal
expression * getOriginal(expression *e)
get original expression (can't make it an expression method as I need a non-const, what "this" would return)
Definition:
CouenneExpression.hpp:315
e
void fint fint fint real fint real real real real real real real real real * e
Definition:
BonBqpdSolver.cpp:27
Couenne::exprClone::print
virtual void print(std::ostream &out=std::cout, bool descend=false) const
Printing.
Definition:
expression.cpp:232
Couenne::exprClone::operator()
CouNumber operator()()
null function for evaluating the expression
Definition:
CouenneExprClone.hpp:62
Couenne::exprClone
expression clone (points to another expression)
Definition:
CouenneExprClone.hpp:24
Couenne::exprCopy::copy_
expression * copy_
the expression this object is a (reference) copy of
Definition:
CouenneExprCopy.hpp:30
Couenne::exprCopy
Definition:
CouenneExprCopy.hpp:25
CouenneExprCopy.hpp
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition:
CouenneTypes.hpp:100
Couenne::exprClone::clone
expression * clone(Domain *d=NULL) const
cloning method
Definition:
CouenneExprClone.hpp:38
Couenne::expression
Expression base class.
Definition:
CouenneExpression.hpp:48
CouenneTypes.hpp
Couenne::exprClone::~exprClone
virtual ~exprClone()
Destructor.
Definition:
CouenneExprClone.hpp:47
Couenne::exprClone::exprClone
exprClone(const exprClone &e, Domain *d=NULL)
copy constructor
Definition:
CouenneExprClone.hpp:33
Couenne::Domain
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
Definition:
CouenneDomain.hpp:104
Couenne::exprClone::Value
CouNumber Value() const
value
Definition:
CouenneExprClone.hpp:58
Generated by
1.8.5