20 using namespace Couenne;
53 (floor (l/
pi2 - 0.5) <
56 else lb = CoinMin (
cos (l),
cos (u));
62 else ub = CoinMax (
cos (l),
cos (u));
71 int period = (
int)(curr/
pi2);
75 if (curr_noperiod < inv) {
79 else if (curr_noperiod <
pi2-inv) {
81 right =
pi2*(period+1) - inv;
84 left =
pi2*(period+1) - inv;
85 right =
pi2*(period+1) + inv;
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
expression * argument_
single argument taken by this expression
static const CouNumber pih
CouNumber inv(register CouNumber arg)
the operator itself
virtual void closestFeasible(expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
closest feasible points in function in both directions
class to compute lower bound of a cosine based on the bounds of its arguments
expression clone (points to another expression)
static const CouNumber pi
double CouNumber
main number type in Couenne
expression * differentiate(int index)
obtain derivative of expression
CouExpr & cos(CouExpr &e)
class to compute lower bound of a cosine based on the bounds of its arguments
static const CouNumber pi2
class for multiplications,