You are here: Home > Fastcode project > Ceil64 Challenge

The Fastcode Project

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