FNX (should be pronounced like "phoenix") is an attempt to revive my old library NX (2003-2011).

FNX is a library of multiprecision numbers (currently, only big integers) written for Free Pascal 3.0.0 or higher and Linux. The assembler code that can be enabled with a compiler directive, is for x86-64 processors only.

The current version is an alpha version, many things can still be modified. There is no documentation yet but the code is commented and there are two Lazarus demo projects: fnx.Demo.BigInts and fnx.Demo.MultithreadApp.

A last thing, I do not know whether FNX can work with an other OS than Linux.

Examples of use

Here are examples of use of the project fnx.Demo.BigInts for Lazarus. For all these examples, the running times were obtained with an Intel i7-2600 processor (3.4 GHz).


v0.9.5 - alpha  (March 29, 2020)

• FNX is now licensed according to the "3-Clause BSD" License.

• Suppressed unit: IntUtils.LowLevel

• Unit Demo.BigInts.Main
◦ Method "Towers of Hanoi" added.

• Unit BigInts.Stacks
◦ GetValues() method added.

 Previous changes


The FNX Library is free software; you can redistribute it and/or modify it under the terms of the 3-Clause BSD License.

Pascal source for Free Pascal compiler 3.0.0 or higher:
 fnx-   (225 kB)