Clone wiki

m4ri / M4RI-20121224

Release Notes

M4RI-20121224 was released on 21 December 2012. It is available at:

About M4RI

M4RI is a library for fast arithmetic with dense matrices over F2. The name M4RI comes from the first implemented algorithm: The "Method of the Four Russians" inversion algorithm published by Gregory Bard. This algorithm in turn is named after the "Method of the Four Russians" multiplication algorithm which is probably better referred to as Kronrod's method. M4RI implements asymptotically fast matrix multiplication, linear system solving, reduced row echelon forms, PLE decomposition and basic arithmetic. M4RI is used by the Sage mathematics software and the PolyBoRi library. M4RI is available under the General Public License Version 2 or later (GPLv2+).


Performance Improvements

Various (micro) optimisations and parameter tuning produced considerably improved performance over 20120613 and prior releases.



More performance plots can be found here: These improvements are also discussed at

Other Changes

  • more flexible parameters for running bench_multiplication 43e1cae
  • cache tuning is deprecated now, using plain L1, L2 and L3 gives best performance c257816
  • explicitly prefix m4ri to all includes, i.e., #include <m4ri/foo.h> f036aa3
  • fixed make dist
  • clarified documentation of JCF format and bug fixes c6298bb #49
  • faster benchmarking code for bench_elimination a50540a
  • added support for PAPI in bench_elimination and bench_multiplication b748f8a bd4dde5
  • prettier printing for bench_multiplication f6869ed

Supported Platforms

make check passes on the following platforms

  • x86_64 Linux (sage.math.washington, redhawk.math.washington);
  • x86 OSX (bsd.math.washington);
  • ia64 Linux (iras.skynet);
  • x86 Linux (Pentium 4, cicero.skynet);

The code does not currently build under Windows, help in this area is appreciated.