| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CopyAlgorithm (Algorithm algorithm) as owning Algorithm | 
| { | 
|   Description: 'Create a copy of an `Algorithm`. This makes sure that the messages stored in it are also duplicated.' | 
|   TextBody: | 
|   [* | 
|     result := LibOpt_Utility::ConstructMathematicalProgramWithoutAnalysis() | 
|     count_real := algorithm.RetrieveReal( LibOpt_Channel::Algorithm_Count() ); | 
|     count := RealToNumber::ISOConverter().Convert( algorithm.RetrieveReal( LibOpt_Channel::Algorithm_Count() ) ); | 
|      | 
|     for( i := 0; i < count; i++ ) | 
|     { | 
|       index := LibOpt_Channel::Algorithm_Index( i ); | 
|       result.StoreString( index, algorithm.RetrieveString( index ) ); | 
|     } | 
|     result.StoreReal( LibOpt_Channel::Algorithm_Count(), count_real ); | 
|      | 
|     return & result; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |