Fast Dense Linear Algebra over Z/pZ.


FFLAS-FFPACK is a C++ linear algebra library. The FFLAS component contains BLAS-like routines for Z/pZ fields, while FFPACK, like LAPACK, implements algorithms for dense Z/pZ matrices and vectors.


latest release :

  • fflas-ffpack-1.6.0


This project consists in the creation of a set of routines, giving similar tools as the set of classical Basic Linear Algebra Subroutines(matrix multiplication, triangular system solve...), but working over finite fields. In the same way, some other routines of higher level (such as the one in LAPACK) are also produced (LQUP factorization, Rank Det computation, Characteristic and minimal polynomial computation...).

The goal is to reach performances as close as possible to those of classical BLAS over double or float.

At this date, the work is split into two groups:

  • FFLAS (a BLAS interface for finite fields)
  • FFPACK (a higher level set of routines based on triangularizations)

Here are two examples of the performances attained by our package (speed is in Mffops = Millions of Finite Field operations per second):

Package Exemple Matrices
Field Time Speed Processor
FFLAS Multiplication of two
dense matrices
4000*4000 Z101 30.11 seconds 4251.08 Mffops Pentium4-2.4 GHz
FFPACK LQUP factorization 7500*7500 Z101 103.00 seconds 2733.00 Mffops Pentium4-2.4 GHz


For further informations about this work, have may a look at: