malb / m4ri

M4RI is a library for fast arithmetic with dense matrices over GF(2)
GNU General Public License v2.0
50 stars 24 forks source link
c linear-algebra matrix-factorization matrix-multiplication

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 is available under the General Public License Version 2 or later (GPLv2+).

Main Features

See Further Reading for implemented algorithms.

Performance

See Performance.

OpenMP Support

OpenMP support for parallel multiplication and elimination is enabled with the

--enable-openmp

configure switch.

Install

If you downloaded M4RI by cloning the mainline tree at

https://bitbucket.org/malb/m4ri

you need to first run the following command:

autoreconf --install

Then do the usual

./configure
make
make check

For details see the instructions in the file INSTALL.

Documentation

To build the reference manual, ensure that you have Doxygen installed. The HTML version of the reference manual can be built as follows:

cd src/
doxygen

The built documentation is contained under the doc subdirectory of m4ri/. Once the HTML version is built, you can build the PDF version as follows:

cd doc/latex/
make

The documentation is also available here.

Contributors

At least the following people have contributed to the M4RI library.

We are grateful to William Stein for providing our hosting and general infrastructure in the past.

Citing M4RI

If you use our libraries in a non-trivial part of your research please consider citing them as follows:

@manual{M4RI,
    key          = "M4RI",
    author       = "Martin Albrecht and Gregory Bard",
    organization = "The M4RI~Team",
    title        = "{The M4RI Library -- Version **version**}",
    year         = **year**,
    url          = "\url{https://bitbucket.org/malb/m4ri}",
}

and cite the appropriate publications mentioned in Further Reading.

Contact

Please contact our mailinglist if there are bugs, questions, comments.

History