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
28
29
30
| Quintiq file version 2.0
| #parent: #root
| StaticMethod GetRealByPercentile (Real percentile, Reals set) const declarative remote as Real
| {
| TextBody:
| [*
| index := ( set.Size() - 1 ) * percentile;
| p := index mod 1;
|
| left := set.Element( floor( index ) )
| right := set.Element( ceil( index ) );
|
| // Guard against infinite values
| value := right;
| if( right.IsFinite() )
| {
| if( left.IsInfinite() )
| {
| value := left;
| }
| else
| {
| value := set.Element( floor( index ) ) * p + set.Element( ceil( index ) ) * ( 1 - p );
| }
| }
|
| return value;
| *]
| InterfaceProperties { Accessibility: 'Module' }
| }
|
|