Ceil64 Challenge
The objective is to build the fastest extension for RTL Ceil
Call
Ceil64 to obtain the lowest Int64 greater than or equal to X. For
example:
Ceil64(-2.8) = -2
Ceil64(2.8) =
3
Ceil64(-1.0) = -1
There are three overloaded
functions differing in the input datatype.
function
Ceil64(const X: Extended): Int64; overload;
function Ceil64(const X:
Double): Int64; overload;
function Ceil64(const X: Single): Int64;
overload;
Note: The absolute value of X must be less than
MaxInt64 = $7FFFFFFFFFFFFFFF;
Validation and Benchmark Tool
Tables of results
Extended
| Target |
Function |
Author |
| P4
Northwood |
CeilExtendedRTL |
Borland |
| P4
Prescott |
CeilExtendedDKCSSE3 |
Dennis Christensen |
| Pentium
M |
CeilExtendedJOH |
John O'Harrow |
| P3 |
CeilExtendedJOH |
John O'Harrow |
| Athlon
XP |
CeilExtendedJOH |
John O'Harrow |
| Opteron |
CeilExtendedJOH |
John O'Harrow |
| RTL
Suggestion |
CeilExtendedJOH |
John O'Harrow |
| Pascal |
CeilExtendedRTL |
Borland |
| Blended |
CeilExtendedJOH |
John O'Harrow |
Double
| Target |
Function |
Author |
| P4
Northwood |
CeilDoubleJOH2 |
John O'Harrow |
| P4
Prescott |
CeilDoubleJOH2 |
John O'Harrow |
| Pentium
M |
CeilDoubleJOH |
John O'Harrow |
| P3 |
CeilDoubleJOH2 |
John O'Harrow |
| Athlon
XP |
CeilDoubleJOH |
John O'Harrow |
| Opteron |
CeilDoubleJOH |
John O'Harrow |
| RTL
Suggestion |
CeilDoubleJOH |
John O'Harrow |
| Pascal |
CeilDoubleDKCPas4 |
Dennis Christensen |
| Blended |
CeilDoubleJOH |
John O'Harrow |
Single
| Target |
Function |
Author |
| P4
Northwood |
CeilSingleJOH |
Dennis Christensen |
| P4
Prescott |
CeilSingleDKCSSE3 |
Dennis Christensen |
| Pentium
M |
CeilSingleJOH |
John O'Harrow |
| P3 |
CeilSingleJOH |
John O'Harrow |
| Athlon
XP |
CeilSingleDKC2 |
Dennis Christensen |
| Opteron |
CeilSingleDKC2 |
Dennis Christensen |
| RTL
Suggestion |
CeilSingleJOH |
John O'Harrow |
| Pascal |
CeilSingleDKCPas4 |
Dennis Christensen |
| Blended |
CeilSingleJOH |
John O'Harrow |