chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Quintiq file version 2.0
#parent: #root
Method GetSuggestedScalingFactor (
  Real factor
) declarative as Real
{
  Description: 'Calculate the suggested scaling factor for test instance'
  TextBody:
  [*
    // soh yee Mar-17-2015 (grouped existing logic)
    
    upperbound := 1e7;
    
    // Get the larget MaxVariableValue
    maxvarvalue := max( this, AlgorithmRunLevel, level, abs( level.MaxVariableValue() ) )
    
    if( maxvarvalue > upperbound )
    {
      maxvariablevaluefactor := maxvarvalue / factor;
      adjustmentneed := maxvalue( maxvariablevaluefactor / upperbound, 1 );       // Scale the value
    
      factor := AlgorithmRun::GetClosestNumberInPower( adjustmentneed, 10 );      // Make it stays as power of 10. e.g: 1, 10, 100, 1000
    }
    
    return factor;
  *]
}