Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod CreateFor (LibOpt_Run run) 
 | 
{ 
 | 
  Description: 'Create `LibOpt_StatisticSuboptimizerMPs` for the given "run" (`LibOpt_Run`).' 
 | 
  TextBody: 
 | 
  [* 
 | 
    traverse( run.SuboptimizerMPs(), Elements, suboptimizermp ) 
 | 
    { 
 | 
      nrexecutions_max := max( suboptimizermp, SnapshotMP, snapshotmp, 
 | 
                               // FILTER 
 | 
                               true, 
 | 
                               // VALUE 
 | 
                               snapshotmp.ExecutionNr() 
 | 
                             ); 
 | 
       
 | 
      // Create MP suboptimizer statistics. 
 | 
      for( executionnr := 1; executionnr <= nrexecutions_max; executionnr++ ) 
 | 
      { 
 | 
        // Create `LibOpt_StatisticSuboptimizerMPInfeasible`. 
 | 
        LibOpt_StatisticSuboptimizerMP::Create( run, typeof( LibOpt_StatisticSuboptimizerMPInfeasible ), 
 | 
                                                suboptimizermp, 
 | 
                                                executionnr, // ExecutionNr 
 | 
                                                0            // GoalLevel (irrelevant for this statistic type) 
 | 
                                              ); 
 | 
         
 | 
        // Create `LibOpt_StatisticSuboptimizerMPKappa`. 
 | 
        LibOpt_StatisticSuboptimizerMP::Create( run, typeof( LibOpt_StatisticSuboptimizerMPKappa ), 
 | 
                                                suboptimizermp, 
 | 
                                                executionnr, // ExecutionNr 
 | 
                                                0            // GoalLevel (irrelevant for this statistic type) 
 | 
                                              ); 
 | 
         
 | 
         
 | 
        nrgoallevels_max := max( suboptimizermp, SnapshotMP, snapshotmp, 
 | 
                                 // FILTER 
 | 
                                 snapshotmp.ExecutionNr() = executionnr, 
 | 
                                 // VALUE 
 | 
                                 snapshotmp.NrGoalLevels() 
 | 
                               ); 
 | 
        for( goallevel := 1; goallevel <= nrgoallevels_max; goallevel++ ) 
 | 
        { 
 | 
          // Create `LibOpt_StatisticSuboptimizerMPRelativeGap`. 
 | 
          LibOpt_StatisticSuboptimizerMP::Create( run, typeof( LibOpt_StatisticSuboptimizerMPRelativeGap ), 
 | 
                                                  suboptimizermp, 
 | 
                                                  executionnr, // ExecutionNr 
 | 
                                                  goallevel    // GoalLevel 
 | 
                                                ); 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Extensible' } 
 | 
} 
 |