Fix bug: scale rays only once

selection
Alinson S. Xavier 9 years ago
parent 1e45817d76
commit c6a3043798

@ -540,8 +540,8 @@ int INFINITY_2D_generate_lfree(const struct MultiRowModel *model,
lfree->nrows = 2;
lfree->rays.nrays = nrays;
memcpy(f, model->f, 2 * 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;
scale = (double*) malloc(nrays * sizeof(double));
@ -721,9 +721,6 @@ int INFINITY_2D_generate_lfree(const struct MultiRowModel *model,
if(is_split) break;
}
for(int i=0; i<nrays; i++)
beta[i] *= scale[i];
CLEANUP:
if(scale) free(scale);
return rval;

@ -31,7 +31,7 @@
* LOG_LEVEL_WARNING
* LOG_LEVEL_ERROR
*/
#define LOG_LEVEL LOG_LEVEL_DEBUG
#define LOG_LEVEL LOG_LEVEL_INFO
/*
* Maximum bounding-box size for naive algorithm
@ -48,7 +48,7 @@
*/
#define N_RAYS 100
#define ONLY_CUT 242
#define ONLY_CUT -1
/*
* 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();
SHOULD_DUMP_CUTS = 1;
rval = generate(&tableau, &cut);
if (rval == ERR_NO_CUT)
{