| 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' } | 
| } |