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

FNX is a library of numeric tools (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 and there is no documentation yet (but the code is commented and there are two Lazarus demo projects).

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 from the project fnx.Demo.BigInts for Lazarus. For all of these examples, the running times were obtained with an Intel i7-2600 processor (3.4 GHz).

v0.9.2 - alpha  (October 6, 2019)
  • fnx.BigInts unit:
    Modified the local procedure SetupPseudoConstants.
    Simplified the names of the twelve functions IGreater[...] and ILess[...]. (Oups? It should have been done before releasing 0.9.1.)
 Previous changes


The FNX Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

The FNX Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library; if not, see GNU licenses or write to

   Free Software Foundation
   51 Franklin St, Fifth Floor
   Boston, MA 02110-1301, USA

  fnx-0-9-2.7z    234 kB   Pascal source for Free Pascal 3.0.0 or higher