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
operators
bounds
CouenneExprBQuad.hpp
Go to the documentation of this file.
1
/* $Id: CouenneExprBQuad.hpp 490 2011-01-14 16:07:12Z pbelotti $ */
2
/*
3
* Name: exprBQuad.hpp
4
* Author: Pietro Belotti
5
* Purpose: definition of operators to compute lower/upper bounds of quadratic forms
6
*
7
* (C) Carnegie-Mellon University, 2006.
8
* This file is licensed under the Eclipse Public License (EPL)
9
*/
10
11
#ifndef COUENNE_EXPRBQUAD_H
12
#define COUENNE_EXPRBQUAD_H
13
14
#include "
CouenneExprOp.hpp
"
15
#include "
CouenneExprQuad.hpp
"
16
17
namespace
Couenne {
18
21
22
class
exprLBQuad
:
public
expression
{
23
24
exprQuad
*
ref_
;
25
26
public
:
27
29
exprLBQuad
(
exprQuad
*ref):
30
ref_
(ref) {}
31
33
exprLBQuad
(
const
exprLBQuad
&src,
Domain
*d = NULL):
34
ref_
(dynamic_cast <
exprQuad
*> (src.
ref_
->
isaCopy
() ?
35
src.
ref_
->
Copy
() ->
clone
(d) :
36
src.
ref_
->
clone
(d))) {}
37
39
~exprLBQuad
() {}
40
42
expression
*
clone
(
Domain
*d = NULL)
const
43
{
return
new
exprLBQuad
(*
this
, d);}
44
46
inline
CouNumber
operator ()
()
47
{
return
ref_
-> computeQBound (-1);}
48
50
virtual
void
print
(std::ostream &s = std::cout,
//< output stream
51
bool
descend =
false
) const
//< descend into auxiliaries' image?
52
53
{s <<
"quadLower("
;
ref_
->
print
(s, descend); s <<
')'
;}
54
};
55
56
59
60
class
exprUBQuad
:
public
expression
{
61
62
exprQuad
*
ref_
;
63
64
public
:
65
67
exprUBQuad
(
exprQuad
*ref):
68
ref_
(ref) {}
69
71
exprUBQuad
(
const
exprUBQuad
&src,
Domain
*d = NULL):
72
ref_
(dynamic_cast <
exprQuad
*> (src.
ref_
->
isaCopy
() ?
73
src.
ref_
->
Copy
() ->
clone
(d) :
74
src.
ref_
->
clone
(d))) {}
75
77
~exprUBQuad
() {}
78
80
expression
*
clone
(
Domain
*d = NULL)
const
81
{
return
new
exprUBQuad
(*
this
, d);}
82
84
inline
CouNumber
operator ()
()
85
{
return
ref_
-> computeQBound (1);}
86
88
virtual
void
print
(std::ostream &s = std::cout,
//< output stream
89
bool
descend =
false
) const
//< descend into auxiliaries' image?
90
91
{s <<
"quadUpper("
;
ref_
->
print
(s, descend); s <<
')'
;}
92
};
93
94
}
95
96
#endif
Couenne::exprUBQuad::~exprUBQuad
~exprUBQuad()
destructor
Definition:
CouenneExprBQuad.hpp:77
Couenne::exprLBQuad::~exprLBQuad
~exprLBQuad()
destructor
Definition:
CouenneExprBQuad.hpp:39
Couenne::exprUBQuad::clone
expression * clone(Domain *d=NULL) const
cloning method
Definition:
CouenneExprBQuad.hpp:80
Couenne::expression::isaCopy
virtual bool isaCopy() const
return true if this is a copy of something (i.e. an exprCopy)
Definition:
CouenneExpression.hpp:268
Couenne::exprLBQuad::clone
expression * clone(Domain *d=NULL) const
cloning method
Definition:
CouenneExprBQuad.hpp:42
Couenne::exprUBQuad
class to compute upper bound of a fraction based on the bounds of both numerator and denominator ...
Definition:
CouenneExprBQuad.hpp:60
Couenne::exprUBQuad::print
virtual void print(std::ostream &s=std::cout, bool descend=false) const
I/O.
Definition:
CouenneExprBQuad.hpp:88
Couenne::exprUBQuad::operator()
CouNumber operator()()
function for the evaluation of the expression
Definition:
CouenneExprBQuad.hpp:84
Couenne::exprLBQuad
class to compute lower bound of a fraction based on the bounds of both numerator and denominator ...
Definition:
CouenneExprBQuad.hpp:22
Couenne::exprLBQuad::ref_
exprQuad * ref_
quadratic form, reference expression
Definition:
CouenneExprBQuad.hpp:24
Couenne::exprUBQuad::exprUBQuad
exprUBQuad(exprQuad *ref)
Constructor.
Definition:
CouenneExprBQuad.hpp:67
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition:
CouenneTypes.hpp:100
Couenne::exprLBQuad::exprLBQuad
exprLBQuad(const exprLBQuad &src, Domain *d=NULL)
copy constructor
Definition:
CouenneExprBQuad.hpp:33
Couenne::exprQuad
class exprQuad, with constant, linear and quadratic terms
Definition:
CouenneExprQuad.hpp:44
Couenne::exprUBQuad::ref_
exprQuad * ref_
quadratic form, reference expression
Definition:
CouenneExprBQuad.hpp:62
Couenne::exprUBQuad::exprUBQuad
exprUBQuad(const exprUBQuad &src, Domain *d=NULL)
copy constructor
Definition:
CouenneExprBQuad.hpp:71
Couenne::exprLBQuad::operator()
CouNumber operator()()
function for the evaluation of the expression
Definition:
CouenneExprBQuad.hpp:46
Couenne::exprLBQuad::print
virtual void print(std::ostream &s=std::cout, bool descend=false) const
I/O.
Definition:
CouenneExprBQuad.hpp:50
Couenne::exprLBQuad::exprLBQuad
exprLBQuad(exprQuad *ref)
Constructor.
Definition:
CouenneExprBQuad.hpp:29
Couenne::expression
Expression base class.
Definition:
CouenneExpression.hpp:48
CouenneExprQuad.hpp
CouenneExprOp.hpp
Couenne::expression::Copy
virtual expression * Copy() const
return copy of this expression (only makes sense in exprCopy)
Definition:
CouenneExpression.hpp:272
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.5