#include <linquad_cuts.hpp>
#include <stdio.h>
#include <math.h>
#include <CglCutGenerator.hpp>
#include <tracer.hpp>
#include <misc_util.hpp>
Include dependency graph for linquad_cuts.cpp:
Go to the source code of this file.
Defines | |
#define | LINQUAD_BOUNDS_CUTS_PARTS 3 |
Functions | |
double | f_ (double x) |
double | fp_ (double x) |
double | fpp_ (double x) |
double | powNewton (double xc, double yc, double(*f)(double), double(*fp)(double), double(*fpp)(double)) |
void | linQuadCutGen (const double *sol, int n, OsiCuts &cs, Tracer *tracer) |
void | linQuadCutGenOriginalBounds (const double *xlb, const double *xub, int n, OsiCuts &cs, Tracer *tracer) |
void | generateTangentDiagonalEntryCut (int n, int i, OsiCuts &cs, double xc, double yc, const double *sol, bool ifViolated) |
#define LINQUAD_BOUNDS_CUTS_PARTS 3 |
Referenced by linQuadCutGenOriginalBounds().
double f_ | ( | double | x | ) |
Definition at line 24 of file linquad_cuts.cpp.
Referenced by linQuadCutGen(), and linQuadCutGenOriginalBounds().
double fp_ | ( | double | x | ) |
double fpp_ | ( | double | x | ) |
double powNewton | ( | double | xc, | |
double | yc, | |||
double(*)(double) | f, | |||
double(*)(double) | fp, | |||
double(*)(double) | fpp | |||
) |
Definition at line 28 of file linquad_cuts.cpp.
References f, k, NEWTON_MAX_ITER, and NEWTON_POW_TOLERANCE.
void linQuadCutGen | ( | const double * | sol, | |
int | n, | |||
OsiCuts & | cs, | |||
Tracer * | tracer | |||
) |
Definition at line 66 of file linquad_cuts.cpp.
References f_(), fp_(), fpp_(), generateTangentDiagonalEntryCut(), indexQ, Couenne::powNewton(), Tracer::setLinquadTime(), Tracer::setLinquadTotalCuts(), Timer::start(), and Timer::time().
Referenced by CutGen::generateCuts().
void linQuadCutGenOriginalBounds | ( | const double * | xlb, | |
const double * | xub, | |||
int | n, | |||
OsiCuts & | cs, | |||
Tracer * | tracer | |||
) |
Definition at line 103 of file linquad_cuts.cpp.
References f_(), generateTangentDiagonalEntryCut(), LINQUAD_BOUNDS_CUTS_PARTS, Tracer::setLinquadTime(), Tracer::setLinquadTotalCuts(), Timer::start(), and Timer::time().
void generateTangentDiagonalEntryCut | ( | int | n, | |
int | i, | |||
OsiCuts & | cs, | |||
double | xc, | |||
double | yc, | |||
const double * | sol, | |||
bool | ifViolated | |||
) |
Definition at line 126 of file linquad_cuts.cpp.
References indexQ.
Referenced by linQuadCutGen(), and linQuadCutGenOriginalBounds().