Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
tmp
OS-2.10.2
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
s
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real * s
Definition:
BonFilterSolver.cpp:29
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