Fix bug: scale rays only once
This commit is contained in:
@@ -540,8 +540,8 @@ int INFINITY_2D_generate_lfree(const struct MultiRowModel *model,
|
|||||||
|
|
||||||
lfree->nrows = 2;
|
lfree->nrows = 2;
|
||||||
lfree->rays.nrays = nrays;
|
lfree->rays.nrays = nrays;
|
||||||
memcpy(f, model->f, 2 * sizeof(double));
|
|
||||||
memcpy(rays, model->rays.values, 2 * nrays * sizeof(double));
|
memcpy(rays, model->rays.values, 2 * nrays * sizeof(double));
|
||||||
|
memcpy(f, model->f, 2 * sizeof(double));
|
||||||
for (int i = 0; i < nrays; i++) beta[i] = GREEDY_BIG_E;
|
for (int i = 0; i < nrays; i++) beta[i] = GREEDY_BIG_E;
|
||||||
|
|
||||||
scale = (double*) malloc(nrays * sizeof(double));
|
scale = (double*) malloc(nrays * sizeof(double));
|
||||||
@@ -721,9 +721,6 @@ int INFINITY_2D_generate_lfree(const struct MultiRowModel *model,
|
|||||||
if(is_split) break;
|
if(is_split) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i=0; i<nrays; i++)
|
|
||||||
beta[i] *= scale[i];
|
|
||||||
|
|
||||||
CLEANUP:
|
CLEANUP:
|
||||||
if(scale) free(scale);
|
if(scale) free(scale);
|
||||||
return rval;
|
return rval;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
* LOG_LEVEL_WARNING
|
* LOG_LEVEL_WARNING
|
||||||
* LOG_LEVEL_ERROR
|
* LOG_LEVEL_ERROR
|
||||||
*/
|
*/
|
||||||
#define LOG_LEVEL LOG_LEVEL_DEBUG
|
#define LOG_LEVEL LOG_LEVEL_INFO
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Maximum bounding-box size for naive algorithm
|
* Maximum bounding-box size for naive algorithm
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
*/
|
*/
|
||||||
#define N_RAYS 100
|
#define N_RAYS 100
|
||||||
|
|
||||||
#define ONLY_CUT 242
|
#define ONLY_CUT -1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Time limit for the computation (user time, in seconds).
|
* Time limit for the computation (user time, in seconds).
|
||||||
|
|||||||
@@ -867,7 +867,6 @@ int CG_add_multirow_cuts(struct CG *cg,
|
|||||||
|
|
||||||
double initial_time = get_user_time();
|
double initial_time = get_user_time();
|
||||||
|
|
||||||
SHOULD_DUMP_CUTS = 1;
|
|
||||||
rval = generate(&tableau, &cut);
|
rval = generate(&tableau, &cut);
|
||||||
if (rval == ERR_NO_CUT)
|
if (rval == ERR_NO_CUT)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user