Loading...
Searching...
No Matches
CglTwomir.hpp File Reference
`#include <string>`
`#include "CglCutGenerator.hpp"`
`#include "CoinFactorization.hpp"`
Include dependency graph for CglTwomir.hpp:

Go to the source code of this file.

## Classes

struct | DGG_constraint_t
struct | DGG_list_t
struct | cutParams
struct | DGG_data_t
class | CglTwomir
| Twostep MIR Cut Generator Class. More...

## Macros

#define | DGG_isBasic(data, idx)
#define | DGG_isInteger(data, idx)
#define | DGG_isStructural(data, idx)
#define | DGG_isEqualityConstraint(data, idx)
#define | DGG_isNonBasicAtUB(data, idx)
#define | DGG_isNonBasicAtLB(data, idx)
#define | DGG_isConstraintBoundedAbove(data, idx)
#define | DGG_isConstraintBoundedBelow(data, idx)
#define | DGG_setIsBasic(data, idx)
#define | DGG_setIsInteger(data, idx)
#define | DGG_setIsStructural(data, idx)
#define | DGG_setEqualityConstraint(data, idx)
#define | DGG_setIsNonBasicAtUB(data, idx)
#define | DGG_setIsNonBasicAtLB(data, idx)
#define | DGG_setIsConstraintBoundedAbove(data, idx)
#define | DGG_setIsConstraintBoundedBelow(data, idx)
#define | DGG_DEBUG_DGG 1
#define | DGG_TRACE_ERRORS 0
#define | DGG_DISPLAY 0
#define | DGG_AUTO_CHECK_CUT_OFF_OPTIMAL 1
#define | DGG_DEFAULT_METHOD 2
#define | DGG_DEFAULT_TMIN 1
#define | DGG_DEFAULT_TMAX 1
#define | DGG_DEFAULT_TAUMIN 2
#define | DGG_DEFAULT_TAUMAX 6
#define | DGG_DEFAULT_MAX_CUTS 500
#define | DGG_DEFAULT_IMPROVEMENT_THRESH 0.001
#define | DGG_DEFAULT_NBELOW_THRESH INT_MAX
#define | DGG_DEFAULT_NROOT_ROUNDS 2
#define | DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS 0
#define | DGG_DEFAULT_ALPHA_RULE 0
#define | DGG_DEFAULT_CUT_INC 250
#define | DGG_DEFAULT_CUT_FORM 0
#define | DGG_DEFAULT_NICEFY 0
#define | DGG_DEFAULT_ONLY_DELAYED 0
#define | DGG_DEFAULT_DELAYED_FREQ 9999999
#define | DGG_DEFAULT_LPROWS_FREQ 9999999
#define | DGG_DEFAULT_WHICH_FORMULATION_CUTS 2
#define | DGG_OSI 0
#define | DGG_CPX 1
#define | DGG_QSO 2
#define | DGG_SOLVER DGG_OSI
#define | DGG_DEBUG_SOLVER 0
#define | DGG_SOLVER_SCREEN_FLAG 0
#define | DGG_TMIR_CUT 1
#define | DGG_2STEP_CUT 2
#define | DGG_ALPHA_MIN_SUM 0
#define | DGG_ALPHA_RANDOM_01 1
#define | DGG_ALPHA_RANDOM_COEFF 2
#define | DGG_ALPHA_ALL 3
#define | DGG_ALPHA_MAX_STEEP 5
#define | DGG_MIN_STEEPNESS 1.0e-4
#define | DGG_MAX_L2NORM 1.0e7
#define | DGG_NORM_CRITERIA 1
#define | DGG_GOMORY_THRESH 0.005
#define | DGG_RHS_THRESH 0.005
#define | DGG_BOUND_THRESH 1.0e-6
#define | DGG_EQUALITY_THRESH 1.0e-5
#define | DGG_SHIFT_THRESH 1.0e-6
#define | DGG_INTEGRALITY_THRESH 1.0e-10
#define | CBC_CHECK_CUT
#define | DGG_MIN_TABLEAU_COEFFICIENT 1.0e-12
#define | DGG_MIN_RHO 1.0e-7
#define | DGG_MIN_ALPHA 1.0e-7
#define | DGG_NULL_SLACK 1.0e-5
#define | DGG_NICEFY_MIN_ABSVALUE 1.0e-13
#define | DGG_NICEFY_MIN_FIX 1.0e-7
#define | DGG_NICEFY_MAX_PADDING 1.0e-6
#define | DGG_NICEFY_MAX_RATIO 1.0e9
#define | DGG_IF_EXIT(A, B, REST)
#define | DGG_THROW(A, B)
#define | DGG_CHECKRVAL(A, B)
#define | DGG_CHECKRVAL1(A, B)
#define | DGG_TEST(A, B, REST)
#define | DGG_TEST2(A, B, REST, C)
#define | DGG_TEST3(A, B, REST, C, D)
#define | DGG_MIN(a, b)
#define | DGG_MAX(a, b)
#define | KREM(vht, alpha, tau)
#define | LMIN(vht, d, bht)
#define | ABOV(v)
#define | QINT(vht, bht, tau)
#define | V2I(bht, tau, i)

## Functions

int | DGG_is_even (double vht, double bht, int tau, int q)
double | frac_part (double value)
int | DGG_is_a_multiple_of_b (double a, double b)
int | DGG_freeData (DGG_data_t *data)
DGG_constraint_t * | DGG_newConstraint (int max_arrays)
void | DGG_freeConstraint (DGG_constraint_t *c)
DGG_constraint_t * | DGG_copyConstraint (DGG_constraint_t *c)
void | DGG_scaleConstraint (DGG_constraint_t *c, int t)
void | DGG_list_init (DGG_list_t *l)
int | DGG_list_addcut (DGG_list_t *l, DGG_constraint_t *cut, int ctype, double alpha)
void | DGG_list_delcut (DGG_list_t *l, int i)
void | DGG_list_free (DGG_list_t *l)
DGG_data_t * | DGG_getData (const void *solver_ptr)
int | DGG_transformConstraint (DGG_data_t *data, double **x_out, double **rc_out, char **isint_out, DGG_constraint_t *constraint)
int | DGG_unTransformConstraint (DGG_data_t *data, DGG_constraint_t *constraint)
int | DGG_substituteSlacks (const void *solver_ptr, DGG_data_t *data, DGG_constraint_t *cut)
int | DGG_nicefyConstraint (const void *solver_ptr, DGG_data_t *data, DGG_constraint_t *cut)
int | DGG_getFormulaConstraint (int row_idx, const void *solver_ptr, DGG_data_t *data, DGG_constraint_t *row)
int | DGG_getTableauConstraint (int index, const void *solver_ptr, DGG_data_t *data, DGG_constraint_t *tabrow, const int *colIsBasic, const int *rowIsBasic, CoinFactorization &factorization, int mode)
DGG_constraint_t * | DGG_getSlackExpression (const void *solver_ptr, DGG_data_t *data, int row_index)
int | DGG_generateTabRowCuts (DGG_list_t *list, DGG_data_t *data, const void *solver_ptr)
int | DGG_generateFormulationCuts (DGG_list_t *list, DGG_data_t *data, const void *solver_ptr, int nrows, CoinThreadRandom &generator)
int | DGG_generateFormulationCutsFromBase (DGG_constraint_t *base, double slack, DGG_list_t *list, DGG_data_t *data, const void *solver_ptr, CoinThreadRandom &generator)
int | DGG_generateCutsFromBase (DGG_constraint_t *base, DGG_list_t *list, DGG_data_t *data, const void *solver_ptr)
int | DGG_buildMir (char *isint, DGG_constraint_t *base, DGG_constraint_t **cut_out)
int | DGG_build2step (double alpha, char *isint, DGG_constraint_t *base, DGG_constraint_t **cut_out)
int | DGG_addMirToList (DGG_constraint_t *base, char *isint, double *x, DGG_list_t *list, DGG_data_t *data, DGG_constraint_t *orig_base)
int | DGG_add2stepToList (DGG_constraint_t *base, char *isint, double *x, double *rc, DGG_list_t *list, DGG_data_t *data, DGG_constraint_t *orig_base)
double | DGG_cutLHS (DGG_constraint_t *c, double *x)
int | DGG_isCutDesirable (DGG_constraint_t *c, DGG_data_t *d)
int | DGG_isConstraintViolated (DGG_data_t *d, DGG_constraint_t *c)
int | DGG_isBaseTrivial (DGG_data_t *d, DGG_constraint_t *c)
int | DGG_is2stepValid (double alpha, double bht)
int | DGG_cutsOffPoint (double *x, DGG_constraint_t *cut)
void | CglTwomirUnitTest (const OsiSolverInterface *siP, const std::string mpdDir)
| A function that tests the methods in the CglTwomir class.

## Macro Definition Documentation

## DGG_isBasic

#define DGG_isBasic | ( |  | data,
|  |  | idx )

Value:
((data->info[idx])&1)

Definition at line 71 of file CglTwomir.hpp.

## DGG_isInteger

#define DGG_isInteger | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 1)&1)

Definition at line 72 of file CglTwomir.hpp.

## DGG_isStructural

#define DGG_isStructural | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 2)&1)

Definition at line 73 of file CglTwomir.hpp.

## DGG_isEqualityConstraint

#define DGG_isEqualityConstraint | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 3)&1)

Definition at line 74 of file CglTwomir.hpp.

## DGG_isNonBasicAtUB

#define DGG_isNonBasicAtUB | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 4)&1)

Definition at line 75 of file CglTwomir.hpp.

## DGG_isNonBasicAtLB

#define DGG_isNonBasicAtLB | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 5)&1)

Definition at line 76 of file CglTwomir.hpp.

## DGG_isConstraintBoundedAbove

#define DGG_isConstraintBoundedAbove | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 6)&1)

Definition at line 77 of file CglTwomir.hpp.

## DGG_isConstraintBoundedBelow

#define DGG_isConstraintBoundedBelow | ( |  | data,
|  |  | idx )

Value:
((data->info[idx] >> 7)&1)

Definition at line 78 of file CglTwomir.hpp.

## DGG_setIsBasic

#define DGG_setIsBasic | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= 1)

Definition at line 80 of file CglTwomir.hpp.

## DGG_setIsInteger

#define DGG_setIsInteger | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<1))

Definition at line 81 of file CglTwomir.hpp.

## DGG_setIsStructural

#define DGG_setIsStructural | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<2))

Definition at line 82 of file CglTwomir.hpp.

## DGG_setEqualityConstraint

#define DGG_setEqualityConstraint | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<3))

Definition at line 83 of file CglTwomir.hpp.

## DGG_setIsNonBasicAtUB

#define DGG_setIsNonBasicAtUB | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<4))

Definition at line 84 of file CglTwomir.hpp.

## DGG_setIsNonBasicAtLB

#define DGG_setIsNonBasicAtLB | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<5))

Definition at line 85 of file CglTwomir.hpp.

## DGG_setIsConstraintBoundedAbove

#define DGG_setIsConstraintBoundedAbove | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<6))

Definition at line 86 of file CglTwomir.hpp.

## DGG_setIsConstraintBoundedBelow

#define DGG_setIsConstraintBoundedBelow | ( |  | data,
|  |  | idx )

Value:
((data->info[idx]) |= (1<<7))

Definition at line 87 of file CglTwomir.hpp.

## DGG_DEBUG_DGG

#define DGG_DEBUG_DGG 1

Definition at line 236 of file CglTwomir.hpp.

## DGG_TRACE_ERRORS

#define DGG_TRACE_ERRORS 0

Definition at line 237 of file CglTwomir.hpp.

## DGG_DISPLAY

#define DGG_DISPLAY 0

Definition at line 238 of file CglTwomir.hpp.

## DGG_AUTO_CHECK_CUT_OFF_OPTIMAL

#define DGG_AUTO_CHECK_CUT_OFF_OPTIMAL 1

Definition at line 239 of file CglTwomir.hpp.

## DGG_DEFAULT_METHOD

#define DGG_DEFAULT_METHOD 2

Definition at line 243 of file CglTwomir.hpp.

## DGG_DEFAULT_TMIN

#define DGG_DEFAULT_TMIN 1

Definition at line 244 of file CglTwomir.hpp.

## DGG_DEFAULT_TMAX

#define DGG_DEFAULT_TMAX 1

Definition at line 245 of file CglTwomir.hpp.

## DGG_DEFAULT_TAUMIN

#define DGG_DEFAULT_TAUMIN 2

Definition at line 246 of file CglTwomir.hpp.

## DGG_DEFAULT_TAUMAX

#define DGG_DEFAULT_TAUMAX 6

Definition at line 247 of file CglTwomir.hpp.

## DGG_DEFAULT_MAX_CUTS

#define DGG_DEFAULT_MAX_CUTS 500

Definition at line 248 of file CglTwomir.hpp.

## DGG_DEFAULT_IMPROVEMENT_THRESH

#define DGG_DEFAULT_IMPROVEMENT_THRESH 0.001

Definition at line 249 of file CglTwomir.hpp.

## DGG_DEFAULT_NBELOW_THRESH

#define DGG_DEFAULT_NBELOW_THRESH INT_MAX

Definition at line 250 of file CglTwomir.hpp.

## DGG_DEFAULT_NROOT_ROUNDS

#define DGG_DEFAULT_NROOT_ROUNDS 2

Definition at line 251 of file CglTwomir.hpp.

## DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS

#define DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS 0

Definition at line 252 of file CglTwomir.hpp.

## DGG_DEFAULT_ALPHA_RULE

#define DGG_DEFAULT_ALPHA_RULE 0

Definition at line 253 of file CglTwomir.hpp.

## DGG_DEFAULT_CUT_INC

#define DGG_DEFAULT_CUT_INC 250

Definition at line 254 of file CglTwomir.hpp.

## DGG_DEFAULT_CUT_FORM

#define DGG_DEFAULT_CUT_FORM 0

Definition at line 255 of file CglTwomir.hpp.

## DGG_DEFAULT_NICEFY

#define DGG_DEFAULT_NICEFY 0

Definition at line 256 of file CglTwomir.hpp.

## DGG_DEFAULT_ONLY_DELAYED

#define DGG_DEFAULT_ONLY_DELAYED 0

Definition at line 257 of file CglTwomir.hpp.

## DGG_DEFAULT_DELAYED_FREQ

#define DGG_DEFAULT_DELAYED_FREQ 9999999

Definition at line 258 of file CglTwomir.hpp.

## DGG_DEFAULT_LPROWS_FREQ

#define DGG_DEFAULT_LPROWS_FREQ 9999999

Definition at line 259 of file CglTwomir.hpp.

## DGG_DEFAULT_WHICH_FORMULATION_CUTS

#define DGG_DEFAULT_WHICH_FORMULATION_CUTS 2

Definition at line 260 of file CglTwomir.hpp.

## DGG_OSI

#define DGG_OSI 0

Definition at line 264 of file CglTwomir.hpp.

## DGG_CPX

#define DGG_CPX 1

Definition at line 265 of file CglTwomir.hpp.

## DGG_QSO

#define DGG_QSO 2

Definition at line 266 of file CglTwomir.hpp.

## DGG_SOLVER

#define DGG_SOLVER DGG_OSI

Definition at line 269 of file CglTwomir.hpp.

## DGG_DEBUG_SOLVER

#define DGG_DEBUG_SOLVER 0

Definition at line 272 of file CglTwomir.hpp.

## DGG_SOLVER_SCREEN_FLAG

#define DGG_SOLVER_SCREEN_FLAG 0

Definition at line 275 of file CglTwomir.hpp.

## DGG_TMIR_CUT

#define DGG_TMIR_CUT 1

Definition at line 280 of file CglTwomir.hpp.

## DGG_2STEP_CUT

#define DGG_2STEP_CUT 2

Definition at line 281 of file CglTwomir.hpp.

## DGG_ALPHA_MIN_SUM

#define DGG_ALPHA_MIN_SUM 0

Definition at line 284 of file CglTwomir.hpp.

## DGG_ALPHA_RANDOM_01

#define DGG_ALPHA_RANDOM_01 1

Definition at line 285 of file CglTwomir.hpp.

## DGG_ALPHA_RANDOM_COEFF

#define DGG_ALPHA_RANDOM_COEFF 2

Definition at line 286 of file CglTwomir.hpp.

## DGG_ALPHA_ALL

#define DGG_ALPHA_ALL 3

Definition at line 287 of file CglTwomir.hpp.

## DGG_ALPHA_MAX_STEEP

#define DGG_ALPHA_MAX_STEEP 5

Definition at line 288 of file CglTwomir.hpp.

## DGG_MIN_STEEPNESS

#define DGG_MIN_STEEPNESS 1.0e-4

Definition at line 293 of file CglTwomir.hpp.

## DGG_MAX_L2NORM

#define DGG_MAX_L2NORM 1.0e7

Definition at line 294 of file CglTwomir.hpp.

## DGG_NORM_CRITERIA

#define DGG_NORM_CRITERIA 1

Definition at line 297 of file CglTwomir.hpp.

## DGG_GOMORY_THRESH

#define DGG_GOMORY_THRESH 0.005

Definition at line 302 of file CglTwomir.hpp.

## DGG_RHS_THRESH

#define DGG_RHS_THRESH 0.005

Definition at line 304 of file CglTwomir.hpp.

## DGG_BOUND_THRESH

#define DGG_BOUND_THRESH 1.0e-6

Definition at line 310 of file CglTwomir.hpp.

## DGG_EQUALITY_THRESH

#define DGG_EQUALITY_THRESH 1.0e-5

Definition at line 314 of file CglTwomir.hpp.

## DGG_SHIFT_THRESH

#define DGG_SHIFT_THRESH 1.0e-6

Definition at line 318 of file CglTwomir.hpp.

## DGG_INTEGRALITY_THRESH

#define DGG_INTEGRALITY_THRESH 1.0e-10

Definition at line 323 of file CglTwomir.hpp.

## CBC_CHECK_CUT

#define CBC_CHECK_CUT

Definition at line 327 of file CglTwomir.hpp.

## DGG_MIN_TABLEAU_COEFFICIENT

#define DGG_MIN_TABLEAU_COEFFICIENT 1.0e-12

Definition at line 331 of file CglTwomir.hpp.

## DGG_MIN_RHO

#define DGG_MIN_RHO 1.0e-7

Definition at line 336 of file CglTwomir.hpp.

## DGG_MIN_ALPHA

#define DGG_MIN_ALPHA 1.0e-7

Definition at line 337 of file CglTwomir.hpp.

## DGG_NULL_SLACK

#define DGG_NULL_SLACK 1.0e-5

Definition at line 340 of file CglTwomir.hpp.

## DGG_NICEFY_MIN_ABSVALUE

#define DGG_NICEFY_MIN_ABSVALUE 1.0e-13

Definition at line 343 of file CglTwomir.hpp.

## DGG_NICEFY_MIN_FIX

#define DGG_NICEFY_MIN_FIX 1.0e-7

Definition at line 344 of file CglTwomir.hpp.

## DGG_NICEFY_MAX_PADDING

#define DGG_NICEFY_MAX_PADDING 1.0e-6

Definition at line 345 of file CglTwomir.hpp.

## DGG_NICEFY_MAX_RATIO

#define DGG_NICEFY_MAX_RATIO 1.0e9

Definition at line 346 of file CglTwomir.hpp.

## DGG_IF_EXIT

#define DGG_IF_EXIT | ( |  | A,
|  |  | B,
|  |  | REST )

Value:
{if(A) {fprintf(stdout, REST);exit(B);}}

Definition at line 389 of file CglTwomir.hpp.

## DGG_THROW

#define DGG_THROW | ( |  | A,
|  |  | B )

Value:
return(A)

Definition at line 391 of file CglTwomir.hpp.

## DGG_CHECKRVAL

#define DGG_CHECKRVAL | ( |  | A,
|  |  | B )

Value:
{ if(A) return(B); }

Definition at line 393 of file CglTwomir.hpp.

## DGG_CHECKRVAL1

#define DGG_CHECKRVAL1 | ( |  | A,
|  |  | B )

Value:
{ if(A) { rval = B; goto CLEANUP; } }

Definition at line 394 of file CglTwomir.hpp.

## DGG_TEST

#define DGG_TEST | ( |  | A,
|  |  | B,
|  |  | REST )

Value:
{ if(A) return(B);}

Definition at line 396 of file CglTwomir.hpp.

## DGG_TEST2

#define DGG_TEST2 | ( |  | A,
|  |  | B,
|  |  | REST,
|  |  | C )

Value:
{ DGG_TEST(A,B,REST) }
DGG_TEST
#define DGG_TEST(A, B, REST)
Definition CglTwomir.hpp:396

Definition at line 397 of file CglTwomir.hpp.

## DGG_TEST3

#define DGG_TEST3 | ( |  | A,
|  |  | B,
|  |  | REST,
|  |  | C,
|  |  | D )

Value:
{ DGG_TEST(A,B,REST) }

Definition at line 398 of file CglTwomir.hpp.

## DGG_MIN

#define DGG_MIN | ( |  | a,
|  |  | b )

Value:
( (a<b)?a:b )

Definition at line 404 of file CglTwomir.hpp.

## DGG_MAX

#define DGG_MAX | ( |  | a,
|  |  | b )

Value:
( (a>b)?a:b )

Definition at line 405 of file CglTwomir.hpp.

## KREM

#define KREM | ( |  | vht,
|  |  | alpha,
|  |  | tau )

Value:
(DGG_MIN( ceil(vht / alpha), tau ) - 1)
DGG_MIN
#define DGG_MIN(a, b)
Definition CglTwomir.hpp:404

Definition at line 406 of file CglTwomir.hpp.

## LMIN

#define LMIN | ( |  | vht,
|  |  | d,
|  |  | bht )

Value:
(DGG_MIN( floor(d*bht/bht), d))

Definition at line 407 of file CglTwomir.hpp.

## ABOV

#define ABOV | ( |  | v | ) |

Value:
(v - floor(v))

Definition at line 408 of file CglTwomir.hpp.

## QINT

#define QINT | ( |  | vht,
|  |  | bht,
|  |  | tau )

Value:
( (int)floor( (vht*(tau-1))/bht ) )

Definition at line 409 of file CglTwomir.hpp.

## V2I

#define V2I | ( |  | bht,
|  |  | tau,
|  |  | i )

Value:
( ((i+1)*bht / tau) )

Definition at line 410 of file CglTwomir.hpp.

## Function Documentation

## DGG_is_even()

int DGG_is_even | ( | double | vht,
|  | double | bht,
|  | int | tau,
|  | int | q )

## frac_part()

double frac_part | ( | double | value | ) |

## DGG_is_a_multiple_of_b()

int DGG_is_a_multiple_of_b | ( | double | a,
|  | double | b )

## DGG_freeData()

int DGG_freeData | ( | DGG_data_t * | data | ) |

## DGG_newConstraint()

DGG_constraint_t * DGG_newConstraint | ( | int | max_arrays | ) |

## DGG_freeConstraint()

void DGG_freeConstraint | ( | DGG_constraint_t * | c | ) |

## DGG_copyConstraint()

DGG_constraint_t * DGG_copyConstraint | ( | DGG_constraint_t * | c | ) |

## DGG_scaleConstraint()

void DGG_scaleConstraint | ( | DGG_constraint_t * | c,
|  | int | t )

## DGG_list_init()

void DGG_list_init | ( | DGG_list_t * | l | ) |

## DGG_list_addcut()

int DGG_list_addcut | ( | DGG_list_t * | l,
|  | DGG_constraint_t * | cut,
|  | int | ctype,
|  | double | alpha )

## DGG_list_delcut()

void DGG_list_delcut | ( | DGG_list_t * | l,
|  | int | i )

## DGG_list_free()

void DGG_list_free | ( | DGG_list_t * | l | ) |

## DGG_getData()

DGG_data_t * DGG_getData | ( | const void * | solver_ptr | ) |

## DGG_transformConstraint()

int DGG_transformConstraint | ( | DGG_data_t * | data,
|  | double ** | x_out,
|  | double ** | rc_out,
|  | char ** | isint_out,
|  | DGG_constraint_t * | constraint )

## DGG_unTransformConstraint()

int DGG_unTransformConstraint | ( | DGG_data_t * | data,
|  | DGG_constraint_t * | constraint )

## DGG_substituteSlacks()

int DGG_substituteSlacks | ( | const void * | solver_ptr,
|  | DGG_data_t * | data,
|  | DGG_constraint_t * | cut )

## DGG_nicefyConstraint()

int DGG_nicefyConstraint | ( | const void * | solver_ptr,
|  | DGG_data_t * | data,
|  | DGG_constraint_t * | cut )

## DGG_getFormulaConstraint()

int DGG_getFormulaConstraint | ( | int | row_idx,
|  | const void * | solver_ptr,
|  | DGG_data_t * | data,
|  | DGG_constraint_t * | row )

## DGG_getTableauConstraint()

int DGG_getTableauConstraint | ( | int | index,
|  | const void * | solver_ptr,
|  | DGG_data_t * | data,
|  | DGG_constraint_t * | tabrow,
|  | const int * | colIsBasic,
|  | const int * | rowIsBasic,
|  | CoinFactorization & | factorization,
|  | int | mode )

## DGG_getSlackExpression()

DGG_constraint_t * DGG_getSlackExpression | ( | const void * | solver_ptr,
|  | DGG_data_t * | data,
|  | int | row_index )

## DGG_generateTabRowCuts()

int DGG_generateTabRowCuts | ( | DGG_list_t * | list,
|  | DGG_data_t * | data,
|  | const void * | solver_ptr )

## DGG_generateFormulationCuts()

int DGG_generateFormulationCuts | ( | DGG_list_t * | list,
|  | DGG_data_t * | data,
|  | const void * | solver_ptr,
|  | int | nrows,
|  | CoinThreadRandom & | generator )

## DGG_generateFormulationCutsFromBase()

int DGG_generateFormulationCutsFromBase | ( | DGG_constraint_t * | base,
|  | double | slack,
|  | DGG_list_t * | list,
|  | DGG_data_t * | data,
|  | const void * | solver_ptr,
|  | CoinThreadRandom & | generator )

## DGG_generateCutsFromBase()

int DGG_generateCutsFromBase | ( | DGG_constraint_t * | base,
|  | DGG_list_t * | list,
|  | DGG_data_t * | data,
|  | const void * | solver_ptr )

## DGG_buildMir()

int DGG_buildMir | ( | char * | isint,
|  | DGG_constraint_t * | base,
|  | DGG_constraint_t ** | cut_out )

## DGG_build2step()

int DGG_build2step | ( | double | alpha,
|  | char * | isint,
|  | DGG_constraint_t * | base,
|  | DGG_constraint_t ** | cut_out )

## DGG_addMirToList()

int DGG_addMirToList | ( | DGG_constraint_t * | base,
|  | char * | isint,
|  | double * | x,
|  | DGG_list_t * | list,
|  | DGG_data_t * | data,
|  | DGG_constraint_t * | orig_base )

## DGG_add2stepToList()

int DGG_add2stepToList | ( | DGG_constraint_t * | base,
|  | char * | isint,
|  | double * | x,
|  | double * | rc,
|  | DGG_list_t * | list,
|  | DGG_data_t * | data,
|  | DGG_constraint_t * | orig_base )

## DGG_cutLHS()

double DGG_cutLHS | ( | DGG_constraint_t * | c,
|  | double * | x )

## DGG_isCutDesirable()

int DGG_isCutDesirable | ( | DGG_constraint_t * | c,
|  | DGG_data_t * | d )

## DGG_isConstraintViolated()

int DGG_isConstraintViolated | ( | DGG_data_t * | d,
|  | DGG_constraint_t * | c )

## DGG_isBaseTrivial()

int DGG_isBaseTrivial | ( | DGG_data_t * | d,
|  | DGG_constraint_t * | c )

## DGG_is2stepValid()

int DGG_is2stepValid | ( | double | alpha,
|  | double | bht )

## DGG_cutsOffPoint()

int DGG_cutsOffPoint | ( | double * | x,
|  | DGG_constraint_t * | cut )

## CglTwomirUnitTest()

void CglTwomirUnitTest | ( | const OsiSolverInterface * | siP,
|  | const std::string | mpdDir )

A function that tests the methods in the CglTwomir class.

The only reason for it not to be a member method is that this way it doesn't have to be compiled into the library. And that's a gain, because the library should be compiled with optimization on, but this method should be compiled with debugging.