Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod MergeStreams ( 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm clone1, 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm clone2 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    start := OS::PrecisionCounter();  
 | 
     
 | 
    program.Merge( clone1, MPMergeStrategy::SkipVariables() ); 
 | 
    program.Merge( clone2, MPMergeStrategy::SkipVariables() );  
 | 
     
 | 
    end := OS::PrecisionCounter();  
 | 
    durationmerge := (end- start)/OS::PrecisionCounterFrequency();  
 | 
    program.StoreReal( 'type_B_constraints', clone1.RetrieveReal( 'type_B_constraints' ) ); // msg to show time needed for constraint init 
 | 
    program.StoreReal( 'type_C_constraints', clone2.RetrieveReal( 'type_C_constraints' ) ); // msg to show time needed for constraint init 
 | 
    program.StoreString( 'MergeDuration', 'Merge time program = ' + [String] durationmerge );  
 | 
     
 | 
    // type B constraint init sets the following on the clone - need to copy over   
 | 
    valueboundsp := clone1.RetrieveReal( 'collect_values_model_TotalStockingPointCapacityVariables' );  
 | 
    program.StoreReal( 'collect_values_model_TotalStockingPointCapacityVariables',  valueboundsp ); 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |