Skip to content

Commit e1de09c

Browse files
committed
Merge remote-tracking branch 'origin/v10-minor'
2 parents 3fb7eab + 264bc85 commit e1de09c

4 files changed

Lines changed: 44 additions & 23 deletions

File tree

CHANGELOG

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ Fixed bugs
8080
- fixed bug with changing the type of the slack variable in indicator constraints while copying
8181
- removed unnecessary explicit linking against gmp for unittests for exact solving mode
8282
- fixed that parameters passed on as variadic arguments to SCIPsolveNLP() and SCIPsolveNlpi() were ignored when compiling with MS compilers without -Zc:preprocessor
83+
- make more CONOPT output available when verbosity level is set to 2
84+
- turn off detection of definitional constraints in CONOPT for now, to work around a related issue in CONOPT 4.39.0
8385

8486
Miscellaneous
8587
-------------

src/scip/nlpi_conopt.c

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ static int COI_CALLCONV ReadMatrix(
226226
int VSTA[], /**< initial status values for the variable (used if coidef_inistat() was called with IniStat = 1 or 2) */
227227
int TYPE[], /**< constraint types (equation, inequality, free) */
228228
double RHS[], /**< right hand sides values of constraints (default is zero) */
229-
int ESTA[], /**<initial status values for constraint slacks (used if coidef_inistat() was called with IniStat = 1 or 2) */
229+
int ESTA[], /**< initial status values for constraint slacks (used if coidef_inistat() was called with IniStat = 1 or 2) */
230230
int COLSTA[], /**< starting indices of Jacobian columns in ROWNO */
231231
int ROWNO[], /**< row numbers of Jacobian nonzeros */
232232
double VALUE[], /**< values of the Jacobian elements (defined for all constant Jacobian elements) */
@@ -469,28 +469,37 @@ static int COI_CALLCONV ReadMatrix(
469469

470470
#ifdef STRUCTURE_DEBUG
471471
SCIPdebugMsg(scip, "Jacobian structure information:\n");
472-
SCIPdebugMsg(scip, "COLSTA =\n");
472+
SCIPdebugMsg(scip, "COLSTA = ");
473473
for( int i = 0; i <= NUMVAR; i++ )
474-
printf("%d, ", COLSTA[i]);
475-
printf("\n");
474+
SCIPdebugMsgPrint(scip, "%d, ", i, COLSTA[i]);
475+
SCIPdebugMsgPrint(scip, "\n");
476476

477-
SCIPdebugMsg(scip, "ROWNO =\n");
477+
SCIPdebugMsg(scip, "ROWNO = ");
478478
for( int i = 0; i < NUMNZ; i++ )
479-
printf("%d, ", ROWNO[i]);
480-
printf("\n");
479+
SCIPdebugMsgPrint(scip, "%d, ", i, ROWNO[i]);
480+
SCIPdebugMsgPrint(scip, "\n");
481481

482-
SCIPdebugMsg(scip, "NLFLAG =\n");
482+
SCIPdebugMsg(scip, "NLFLAG = ");
483483
for( int i = 0; i < NUMNZ; i++ )
484-
printf("%d, ", NLFLAG[i]);
485-
printf("\n");
484+
SCIPdebugMsgPrint(scip, "%d, ", NLFLAG[i]);
485+
SCIPdebugMsgPrint(scip, "\n");
486486

487-
SCIPdebugMsg(scip, "VALUE =\n");
487+
SCIPdebugMsg(scip, "VALUE = ");
488488
for( int i = 0; i < NUMNZ; i++ )
489-
if( SCIPisInfinity(scip, VALUE[i]) )
490-
printf("inf, ");
489+
if( VALUE[i] == 1.234e34 ) /*lint !e777*/ /* CONOPT's special value for "undefined" */
490+
SCIPdebugMsgPrint(scip, "undef, ");
491491
else
492-
printf("%g, ", VALUE[i]);
493-
printf("\n");
492+
SCIPdebugMsgPrint(scip, "%g, ", VALUE[i]);
493+
SCIPdebugMsgPrint(scip, "\n");
494+
/*
495+
for( int i = 0; i < NUMVAR; i++ )
496+
{
497+
SCIPdebugMsg(scip, "var %d:", i);
498+
for( int j = COLSTA[i]; j < COLSTA[i+1]; ++j )
499+
SCIPdebugMsgPrint(scip, " %d", ROWNO[j]);
500+
SCIPdebugMsgPrint(scip, "\n");
501+
}
502+
*/
494503
fflush(stdout);
495504
#endif
496505

@@ -510,11 +519,20 @@ static int COI_CALLCONV Message(
510519

511520
assert(problem != NULL);
512521
assert(problem->scip != NULL);
522+
assert(NMSG <= DMSG); /* conopt docu says that NMSG is always <= DMSG */
513523

514-
if( problem->verblevel > 0 )
524+
switch( problem->verblevel )
515525
{
516-
for( int i = 0; i < SMSG; i++ )
517-
SCIPinfoMessage(problem->scip, NULL, "%s\n", MSGV[i]);
526+
case 0:
527+
break;
528+
case 1:
529+
for( int i = 0; i < SMSG; i++ )
530+
SCIPinfoMessage(problem->scip, NULL, "%s\n", MSGV[i]);
531+
break;
532+
default:
533+
for( int i = 0; i < SMSG || i < DMSG; i++ )
534+
SCIPinfoMessage(problem->scip, NULL, "%s\n", MSGV[i]);
535+
break;
518536
}
519537

520538
return 0;
@@ -748,6 +766,10 @@ static int COI_CALLCONV Option(
748766
strcpy(NAME, "RTREDG");
749767
*RVAL = problem->opttol;
750768
break;
769+
case 2: /* turn definitional constraints off for now (conopt#103) */
770+
strcpy(NAME, "Flg_NoDefc");
771+
*LVAL = 1;
772+
break;
751773
default:
752774
*NAME = '\0';
753775
}

src/scip/presol_milp.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,6 @@ SCIP_RETCODE setupPresolve(
428428
}
429429
#endif
430430

431-
432-
433-
434431
/* exhaustive presolvers*/
435432
presolve.addPresolveMethod( uptr( new ImplIntDetection<T>() ) );
436433
if( data->enabledualinfer )
@@ -447,7 +444,7 @@ SCIP_RETCODE setupPresolve(
447444
{
448445
probing->set_max_badge_size( data->maxbadgesizepar );
449446
}
450-
#if PAPILO_API_VERSION >= 12
447+
#if PAPILO_APIVERSION >= 12
451448
// TODO: enable this after performance test. On MIPLIB this brought 3% on instances with cliques.
452449
probing->set_numcliquefails(0);
453450
#endif

src/scip/scip_iisfinder.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ SCIP_RETCODE SCIPsetIISfinderPriority(
208208
return SCIP_OKAY;
209209
}
210210

211-
/** Gets the IIS.
211+
/** Gets the IIS storage.
212212
*
213213
* @return the \ref SCIP_IIS iis storage.
214214
*

0 commit comments

Comments
 (0)