20 static inline double oppcos (
double x) {
return -
cos (x);}
21 static inline double oppsin (
double x) {
return -
sin (x);}
22 static inline double oppasin (
double x) {
return asin (-x);}
27 const OsiBranchingInformation *
info,
35 exprVar *ref = obj -> Reference ();
37 var = ref -> Image () -> Argument ();
39 assert (var -> Index () >= 0);
40 assert (ref -> Index () >= 0);
43 x0 = info -> solution_ [var -> Index ()],
44 y0 = info -> solution_ [ref -> Index ()];
46 var -> getBounds (l,u);
53 brpts = (
double *) realloc (brpts,
sizeof (
double));
54 brDist = (
double *) realloc (brDist, 2*
sizeof (
double));
55 *brpts = obj -> getBrPoint (&ft, x0, l, u, info);
57 return (brDist [0] = brDist [1] = y0 - ((type ==
COU_SINE) ?
sin(x0) :
cos(x0)));
void fint fint fint real fint real real real real real real real real real fint real fint fint fint real fint fint fint fint * info
OsiObject for auxiliary variables $w=f(x)$.
static double oppcos(double x)
CouNumber trigSelBranch(const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way, enum cou_trig type)
generalized procedure for both sine and cosine
static double oppsin(double x)
CouNumber(* unary_function)(CouNumber)
unary function, used in all exprUnary
cou_trig
specify which trigonometric function is dealt with in trigEnvelope
double CouNumber
main number type in Couenne
static double oppasin(double x)
CouExpr & cos(CouExpr &e)
CouExpr & sin(CouExpr &e)
void fint fint fint real fint real * x