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 |