#include "CouenneCutGenerator.hpp"
#include "CouenneTypes.hpp"
#include "CouenneExprMul.hpp"
#include "CouenneExprTrilinear.hpp"
#include "CouenneProblem.hpp"
#include "CouenneExprAux.hpp"
#include <vector>
Include dependency graph for conv-exprTrilinear-gencuts.cpp:
Go to the source code of this file.
Defines | |
#define | EPSILONT 1.e-6 |
#define | prepareVectors(a) |
Functions | |
void | permutation3 (int **ind, int *ibnd) |
void | TriLinCuts (double *vlb, double *vub, int *varIndices, std::vector< std::vector< int > > &cutIndices, std::vector< std::vector< double > > &cutCoeff, std::vector< double > &cutLb, std::vector< double > &cutUb) |
generate convexification cuts for constraint w = x*y*z |
#define EPSILONT 1.e-6 |
#define prepareVectors | ( | a | ) |
Value:
{ \ \ int size = (int) (cutIndices.size ()); \ \ for (int i=0; i<a; i++) { \ \ cutIndices. push_back (std::vector <int> ()); \ cutCoeff. push_back (std::vector <double> ()); \ \ cutLb. push_back (-COUENNE_INFINITY); \ cutUb. push_back ( COUENNE_INFINITY); \ \ for (int j=0; j<4; j++) { \ \ cutIndices [size+i].push_back (-1); \ cutCoeff [size+i].push_back (0.); \ } \ } \ }
Referenced by TriLinCuts().
void permutation3 | ( | int ** | ind, | |
int * | ibnd | |||
) |
void TriLinCuts | ( | double * | vlb, | |
double * | vub, | |||
int * | varIndices, | |||
std::vector< std::vector< int > > & | cutIndices, | |||
std::vector< std::vector< double > > & | cutCoeff, | |||
std::vector< double > & | cutLb, | |||
std::vector< double > & | cutUb | |||
) |
generate convexification cuts for constraint w = x*y*z
Definition at line 41 of file conv-exprTrilinear-gencuts.cpp.
References COUENNE_INFINITY, DEBUG, EPSILONT, permutation3(), and prepareVectors.
Referenced by Couenne::exprTrilinear::generateCuts().