@@ -692,6 +692,7 @@ SCIP_RETCODE innerPresolve(
692
692
*/
693
693
startindex = 0 ;
694
694
* nblocks = 0 ;
695
+ * maxblocksize = 0 ;
695
696
* nblockvars = 0 ;
696
697
697
698
SCIP_CALL ( SCIPallocBlockMemoryArray (scip , blockstart , nvars /2 ) );
@@ -763,10 +764,10 @@ SCIP_RETCODE presolveTwoOpt(
763
764
int nintvars ;
764
765
int nvars ;
765
766
SCIP_VAR * * vars ;
766
- int nbinblockvars = 0 ;
767
+ int nbinblockvars ;
767
768
int nintblockvars ;
768
- int maxbinblocksize = 0 ;
769
- int maxintblocksize = 0 ;
769
+ int maxbinblocksize ;
770
+ int maxintblocksize ;
770
771
771
772
assert (scip != NULL );
772
773
assert (heurdata != NULL );
@@ -778,27 +779,31 @@ SCIP_RETCODE presolveTwoOpt(
778
779
/* get necessary variable information, i.e. number of binary and integer variables */
779
780
SCIP_CALL ( SCIPgetVarsData (scip , & vars , & nvars , & nbinvars , & nintvars , NULL , NULL ) );
780
781
782
+ #ifdef SCIP_STATISTIC
783
+ /* update statistics */
784
+ heurdata -> ntotalbinvars += nbinvars ;
785
+ #endif
786
+
781
787
/* if number of binary problem variables exceeds 2, they are subject to 2-optimization algorithm, hence heuristic
782
788
* calls innerPresolve method to detect necessary structures. */
783
789
if ( nbinvars >= 2 )
784
790
{
785
791
SCIP_CALL ( innerPresolve (scip , vars , & (heurdata -> binvars ), nbinvars , & (heurdata -> nbinblocks ), & maxbinblocksize ,
786
792
& nbinblockvars , & (heurdata -> binblockstart ), & (heurdata -> binblockend ), heur , heurdata ) );
787
- }
788
-
789
- heurdata -> nbinvars = nbinvars ;
790
- heurdata -> execute = nbinvars > 1 && heurdata -> nbinblocks > 0 ;
791
793
792
794
#ifdef SCIP_STATISTIC
793
- /* update statistics */
794
- heurdata -> binnblocks += (heurdata -> nbinblocks );
795
- heurdata -> binnblockvars += nbinblockvars ;
796
- heurdata -> ntotalbinvars += nbinvars ;
797
- heurdata -> maxbinblocksize = MAX (maxbinblocksize , heurdata -> maxbinblocksize );
795
+ /* update statistics */
796
+ heurdata -> binnblocks += heurdata -> nbinblocks ;
797
+ heurdata -> binnblockvars += nbinblockvars ;
798
+ heurdata -> maxbinblocksize = MAX (maxbinblocksize , heurdata -> maxbinblocksize );
798
799
799
- SCIPstatisticMessage (" Twoopt BINARY presolving finished with <%d> blocks, <%d> block variables \n" ,
800
- heurdata -> nbinblocks , nbinblockvars );
800
+ SCIPstatisticMessage (" Twoopt BINARY presolving finished with <%d> blocks, <%d> block variables \n" ,
801
+ heurdata -> nbinblocks , nbinblockvars );
801
802
#endif
803
+ }
804
+
805
+ heurdata -> nbinvars = nbinvars ;
806
+ heurdata -> execute = nbinvars > 1 && heurdata -> nbinblocks > 0 ;
802
807
803
808
if ( heurdata -> intopt && nintvars > 1 )
804
809
{
0 commit comments