#include <math.h>
#include "OsiSolverInterface.hpp"
#include "CouenneTypes.hpp"
#include "CouenneCutGenerator.hpp"
#include "exprSin.hpp"
#include "exprCos.hpp"
#include "exprAux.hpp"
Include dependency graph for conv-exprSinCos.cpp:
Go to the source code of this file.
Defines | |
#define | M_PI 3.14159265358979323846 |
#define | M_PI_2 1.57079632679489661923 |
#define | NEW_TRIG |
Functions | |
int | trigEnvelope (const CouenneCutGenerator *, OsiCuts &, expression *, expression *, enum cou_trig) |
convex cuts for sine or cosine | |
int | bayEnvelope (const CouenneCutGenerator *, OsiCuts &, int, int, CouNumber, CouNumber, CouNumber, bool &, bool &) |
restrict to quarter of the interval [0,2pi] |
#define M_PI 3.14159265358979323846 |
Definition at line 13 of file conv-exprSinCos.cpp.
Referenced by bayEnvelope(), exprUBSin::operator()(), exprLBSin::operator()(), exprUBCos::operator()(), and exprLBCos::operator()().
#define M_PI_2 1.57079632679489661923 |
#define NEW_TRIG |
Definition at line 26 of file conv-exprSinCos.cpp.
int trigEnvelope | ( | const CouenneCutGenerator * | , | |
OsiCuts & | , | |||
expression * | , | |||
expression * | , | |||
enum | cou_trig | |||
) |
convex cuts for sine or cosine
Definition at line 99 of file conv-exprSinCos.cpp.
References bayEnvelope(), cos(), COU_COSINE, COU_SINE, COUENNE_EPS, COUENNE_INFINITY, f, M_PI_2, sin(), and w.
Referenced by exprCos::generateCuts(), and exprSin::generateCuts().
int bayEnvelope | ( | const CouenneCutGenerator * | , | |
OsiCuts & | , | |||
int | , | |||
int | , | |||
CouNumber | , | |||
CouNumber | , | |||
CouNumber | , | |||
bool & | , | |||
bool & | ||||
) |
restrict to quarter of the interval [0,2pi]
Definition at line 141 of file conv-exprSinCos.cpp.
References CouenneCutGenerator::addSegment(), cos(), M_PI, M_PI_2, modulo(), sin(), and trigNewton().
Referenced by trigEnvelope().