Couenne
0.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
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
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
Couenne::exprClone::print
virtual void print(std::ostream &out=std::cout, bool descend=false) const
Printing.
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