You are here: Home > Fastcode project > Introduction

The Fastcode Project

24th October 2005:

The Fastcode part of this homepage is no longer maintained. Please visit:


The Fastcode project provides highly optimized functions for the Delphi community. Functions are faster versions of Delphi runtime library functions, VCL functions or functions meant as extensions for these. The project is running on a volunteer basis.

Daily discussions are running in the BASM newsgroup at Borland


Functions can be written in assembler and use all the modern instruction sets, MMX, SSE, SSE2, SSE3, 3DNOW and 3DNOW+. We provide functions optimized for all modern processors and also versions that will run at all older processors. On the library page there are units available with all functions (currently more than 300) to download for free.


If you would like to make a donation to the Fastcode Project press the button below

Thanks for the donations I have received so far. They have enabled me to buy all I need for building a Dothan PC.
After that I will focus on building a Banias PC based on the socket 479 to 478 converter card by Asus (CT 479). Martin
Waldenburg is sponsoring a ASUS P4C800 Deluxe motherboard (and a P4 2800C). This MB is fine for a Banias PC. I have 442 Euro left over from the Dothan PC. Thay will enable me to get started on the Banias PC.
These two PCs are the last I need for our current set of targets. In the near future we will add targets for dual core
Pentium D and AMD 64.
Donations of any size are welcome, even the smallest ones.

Best regards

Thanks to:
Route Ware, who has donated a Pentium M processor (value 300 USD)., leading, affordable and proven RAD Enterprise level n-tier, the way it should always have been done!, has donated five licences for LinkLog.


All functions are validated thoroughly. Currently the benchmark and validation tools for the 32 challenges have more than 35000 lines of code. Functions follow the functionality of the corresponding RTL/VCL function exactly. If no corresponding function is present in the RTL/VCL, a text with a description of functionality is present at the challenge page.
Validation covers as much of the parameter space as is possible within resonable run times. Which parameter sub space is validated can change between releases of the benchmark and validation tool such that more of the space is covered over time for functions that have been in the tool longer than one release.


Benchmarks are developed in such a way that correspond to real world usage as good as possible. We do not tweak benchmarks to give impressive results. An example of this is the Move benchmark, which benchmarks all sizes of moves with all kinds of alignment. If we only benchmarked topspeed on moves that would fit into the Level 1 cache and which were 16 byte aligned, our functions would show huge improvements over the RTL function, but this would not be realistic. Each spreadsheet with benchmark results has a page where you can see the speedup we achieved over the RTL functions in the different target categories.


Fastcode function libraries and benchmark & validation tools are released under the license Mozilla Public Licence 1.1 (MPL 1.1)

The licence terms are described at this page:


Voting History Page


AES Challenge - Open
Ansi StringReplace Challenge - Open
ArcCos Challenge - Closed
ArcSin Challenge - Closed
Ceil64 Challenge - Preliminary
CharPos Challenge - Closed
CharPosEY Challenge - Open
CompareMem Challenge - Open
CompareStr Challenge - Open
CompareText Challenge - Closed
Complex Rectangular Number Addition - Closed
Complex Rectangular Number Division - Closed
Complex Rectangular Number Multiplication - Closed
Complex Rectangular Number Subtraction - Closed
Complex RectToPol Challenge - Closed
Complex PolToRect Challenge - Open
Complex Polar Number Addition Challenge - Open
Complex Polar Number Subtraction challenge - Open
Fillchar Challenge - Open
Floor64 Challenge - Preliminary
GCD32 Challenge - Closed
IntToStr Challenge - Preliminary
Int64Div Challenge - Closed
Int64Mul Challenge - Closed
IsPrime Challenge - Open
LowerCase Challenge - Closed
MaxInt Challenge - Closed
MaxInt64 Challenge - Closed
MaxFP Challenge - Closed
Memory Manager Challenge - Preliminary
MinFP Challenge - Closed
MinInt Challenge - Closed
MinInt64 Challenge - Closed
Move Challenge - Open
Pos Challenge - Open
PosEX Challenge - Open
PosIEx Challenge - Open
Power Challenge - Open
RGBA TO BGRA Challenge - Open
Round Challenge - Closed
Round To EX Challenge - Closed
Round32 Challenge - Closed
Scale Down Challenge - Preliminary
StrComp Challenge - Closed
StrCopy Challenge - Closed
TList.Sort Challenge - Preliminary
Trunc Challenge - Closed
Trunc32 Challenge - Closed
UpperCase Challenge - Closed

Branch Target Alignment Investigation

The person who is number one on the winner's list at the 31. December 2006, 23:59 GMT, will be elected "Fastcoder of the Year 2006".

The last BV must be released before 12. December 2006, 23:59 GMT.
Deadline for functions 31. December 2006, 23:59 GMT.
Deadline for benchmark results is 7. January 2007, 23:59 GMT.
The winner will be elected before 10. January 2007, 23:59 GMT.

Fastcode Competition 2006 prize list

Data Apples

Data Apples will donate a site license of Beyond Remote (

Year 2006 Status

Place Name Points

Winner's list

Year 2005 status page

Year 2004 status page

Year 2003 status page


PC Benchmark