Couenne
0.5.8
src
expression
CouenneExprBound.hpp
Go to the documentation of this file.
1
/* $Id: CouenneExprBound.hpp 490 2011-01-14 16:07:12Z pbelotti $
2
*
3
* Name: exprBound.hpp
4
* Author: Pietro Belotti
5
* Purpose: definition of the class for variable bounds
6
*
7
* (C) Carnegie-Mellon University, 2006.
8
* This file is licensed under the Eclipse Public License (EPL)
9
*/
10
11
#ifndef COUENNE_EXPRBOUND_HPP
12
#define COUENNE_EXPRBOUND_HPP
13
14
#include <iostream>
15
#include <assert.h>
16
17
#include "
CouenneTypes.hpp
"
18
#include "
CouenneExprVar.hpp
"
19
20
namespace
Couenne
{
21
34
35
37
38
class
exprLowerBound
:
public
exprVar
{
39
40
public
:
41
43
inline
enum
nodeType
Type
()
const
44
{
return
CONST
;}
45
47
exprLowerBound
(
int
varIndex,
Domain
*d = NULL):
48
exprVar
(varIndex, d) {}
49
51
exprLowerBound
(
const
exprLowerBound
&src,
Domain
*d = NULL):
52
exprVar
(src, d) {}
53
55
inline
exprLowerBound
*
clone
(
Domain
*d = NULL)
const
56
{
return
new
exprLowerBound
(*
this
, d);}
57
59
void
print
(std::ostream &out = std::cout,
60
bool
=
false
)
const
61
{out <<
"l_"
<<
varIndex_
;}
62
64
inline
CouNumber
operator ()
()
65
{assert (
domain_
);
return
domain_
-> lb (
varIndex_
);}
66
68
inline
expression
*
differentiate
(
int
)
69
{
return
new
exprConst
(0.);}
70
72
inline
int
dependsOn
(
int
*,
int
,
enum
dig_type
type =
STOP_AT_AUX
)
73
{
return
0;}
74
76
virtual
inline
int
Linearity
()
77
{
return
CONST
;}
78
80
virtual
inline
enum
expr_type
code
()
81
{
return
COU_EXPRLBOUND
;}
82
};
83
84
86
87
class
exprUpperBound
:
public
exprVar
{
88
89
public
:
90
92
inline
enum
nodeType
Type
()
const
93
{
return
CONST
;}
94
96
exprUpperBound
(
int
varIndex,
Domain
*d = NULL):
97
exprVar
(varIndex, d) {}
98
100
exprUpperBound
(
const
exprUpperBound
&src,
Domain
*d = NULL):
101
exprVar
(src, d) {}
102
104
inline
exprUpperBound
*
clone
(
Domain
*d = NULL)
const
105
{
return
new
exprUpperBound
(*
this
, d);}
106
108
void
print
(std::ostream &out = std::cout,
109
bool
=
false
)
const
110
{out <<
"u_"
<<
varIndex_
;}
111
113
inline
CouNumber
operator ()
()
114
{assert (
domain_
);
return
domain_
-> ub (
varIndex_
);}
115
117
inline
expression
*
differentiate
(
int
)
118
{
return
new
exprConst
(0.);}
119
121
inline
int
dependsOn
(
int
*,
int
,
enum
dig_type
type =
STOP_AT_AUX
)
122
{
return
0;}
123
125
virtual
inline
int
Linearity
()
126
{
return
CONST
;}
127
129
virtual
inline
enum
expr_type
code
()
130
{
return
COU_EXPRUBOUND
;}
131
};
132
133
}
134
135
#endif
Couenne::exprUpperBound
upper bound
Definition:
CouenneExprBound.hpp:87
Couenne::exprUpperBound::Type
enum nodeType Type() const
Node type.
Definition:
CouenneExprBound.hpp:92
Couenne::exprLowerBound::differentiate
expression * differentiate(int)
differentiation
Definition:
CouenneExprBound.hpp:68
Couenne::exprLowerBound
These are bound expression classes.
Definition:
CouenneExprBound.hpp:38
Couenne::expr_type
expr_type
code returned by the method expression::code()
Definition:
CouenneTypes.hpp:40
Couenne::exprLowerBound::clone
exprLowerBound * clone(Domain *d=NULL) const
cloning method
Definition:
CouenneExprBound.hpp:55
Couenne::exprLowerBound::operator()
CouNumber operator()()
return the value of the variable
Definition:
CouenneExprBound.hpp:64
Couenne::exprLowerBound::print
void print(std::ostream &out=std::cout, bool=false) const
Print to iostream.
Definition:
CouenneExprBound.hpp:59
Couenne::exprVar::varIndex_
int varIndex_
The index of the variable.
Definition:
CouenneExprVar.hpp:49
Couenne::exprUpperBound::code
virtual enum expr_type code()
code for comparisons
Definition:
CouenneExprBound.hpp:129
Couenne::exprLowerBound::Type
enum nodeType Type() const
Node type.
Definition:
CouenneExprBound.hpp:43
Couenne::exprUpperBound::clone
exprUpperBound * clone(Domain *d=NULL) const
cloning method
Definition:
CouenneExprBound.hpp:104
Couenne::exprUpperBound::exprUpperBound
exprUpperBound(const exprUpperBound &src, Domain *d=NULL)
Copy constructor.
Definition:
CouenneExprBound.hpp:100
Couenne::CONST
@ CONST
Definition:
CouenneTypes.hpp:20
Couenne::exprUpperBound::exprUpperBound
exprUpperBound(int varIndex, Domain *d=NULL)
Constructor.
Definition:
CouenneExprBound.hpp:96
Couenne
general include file for different compilers
Definition:
CouenneAggrProbing.hpp:24
Couenne::exprUpperBound::differentiate
expression * differentiate(int)
differentiation
Definition:
CouenneExprBound.hpp:117
Couenne::STOP_AT_AUX
@ STOP_AT_AUX
Definition:
CouenneTypes.hpp:62
Couenne::dig_type
dig_type
type of digging when filling the dependence list
Definition:
CouenneTypes.hpp:62
Couenne::exprLowerBound::Linearity
virtual int Linearity()
get a measure of "how linear" the expression is:
Definition:
CouenneExprBound.hpp:76
CouenneExprVar.hpp
Couenne::exprUpperBound::dependsOn
int dependsOn(int *, int, enum dig_type type=STOP_AT_AUX)
dependence on variable set
Definition:
CouenneExprBound.hpp:121
Couenne::exprLowerBound::dependsOn
int dependsOn(int *, int, enum dig_type type=STOP_AT_AUX)
dependence on variable set
Definition:
CouenneExprBound.hpp:72
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition:
CouenneTypes.hpp:100
Couenne::exprLowerBound::exprLowerBound
exprLowerBound(int varIndex, Domain *d=NULL)
Constructor.
Definition:
CouenneExprBound.hpp:47
Couenne::COU_EXPRLBOUND
@ COU_EXPRLBOUND
Definition:
CouenneTypes.hpp:42
Couenne::exprVar
variable-type operator
Definition:
CouenneExprVar.hpp:45
Couenne::COU_EXPRUBOUND
@ COU_EXPRUBOUND
Definition:
CouenneTypes.hpp:42
CouenneTypes.hpp
Couenne::exprConst
constant-type operator
Definition:
CouenneExprConst.hpp:23
Couenne::nodeType
nodeType
type of a node in an expression tree
Definition:
CouenneTypes.hpp:20
Couenne::exprVar::domain_
Domain * domain_
Pointer to a descriptor of the current point/bounds.
Definition:
CouenneExprVar.hpp:50
Couenne::exprUpperBound::print
void print(std::ostream &out=std::cout, bool=false) const
Print to iostream.
Definition:
CouenneExprBound.hpp:108
Couenne::exprUpperBound::Linearity
virtual int Linearity()
get a measure of "how linear" the expression is:
Definition:
CouenneExprBound.hpp:125
Couenne::exprLowerBound::code
virtual enum expr_type code()
code for comparisons
Definition:
CouenneExprBound.hpp:80
Couenne::exprLowerBound::exprLowerBound
exprLowerBound(const exprLowerBound &src, Domain *d=NULL)
Copy constructor.
Definition:
CouenneExprBound.hpp:51
Couenne::exprUpperBound::operator()
CouNumber operator()()
return the value of the variable
Definition:
CouenneExprBound.hpp:113
Couenne::expression
Expression base class.
Definition:
CouenneExpression.hpp:48
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
Generated by
1.8.17