{"id":20600146,"url":"https://github.com/malb/m4rie","last_synced_at":"2025-04-15T00:41:36.214Z","repository":{"id":21988741,"uuid":"25313723","full_name":"malb/m4rie","owner":"malb","description":"M4RIE is a library for fast arithmetic with dense matrices over GF(2^e) for 2 ≤ e ≤ 16","archived":false,"fork":false,"pushed_at":"2025-01-28T13:25:29.000Z","size":2011,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-28T12:39:00.834Z","etag":null,"topics":["c","linear-algebra","matrix-factorization","matrix-multiplication"],"latest_commit_sha":null,"homepage":"https://bitbucket.org/malb/m4rie","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/malb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-10-16T17:37:11.000Z","updated_at":"2025-01-28T13:25:13.000Z","dependencies_parsed_at":"2025-01-16T09:41:11.253Z","dependency_job_id":"7ad3a6db-cc7b-4afa-9872-1b1b7d71a784","html_url":"https://github.com/malb/m4rie","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malb%2Fm4rie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malb%2Fm4rie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malb%2Fm4rie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malb%2Fm4rie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/malb","download_url":"https://codeload.github.com/malb/m4rie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986271,"owners_count":21194024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","linear-algebra","matrix-factorization","matrix-multiplication"],"created_at":"2024-11-16T08:37:03.170Z","updated_at":"2025-04-15T00:41:36.203Z","avatar_url":"https://github.com/malb.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"M4RIE is a library for fast arithmetic with dense matrices over GF(2^e) for 2 ≤ e ≤ 16. The name stems from the fact that is relies heavily on M4RI. M4RIE is part of the Sage mathematics software. M4RIE is available under the General Public License Version 2 or later (GPLv2+).\n\n# Main Features #\n\n* basic arithmetic with dense matrices over GF(2^e) (addition, equality testing, stacking, augmenting, sub-matrices, etc.),\n\n* asymptotically fast $O(n^{\\log_2 7})$ matrix multiplication using the Karatsuba trick due to Boothby and Bradshaw,\n\n* asymptotically fast $O(n^{\\log_2 7})$ matrix multiplication using “Newton-John Table” based multiplication \u0026 the Strassen-Winograd algorithm,\n\n* fast row echelon form computation and matrix inversion via a “Newton-John Table” based algorithm using only $O(n^2)$ field multiplications and $O(n^3)$ field additions,\n\n* asymptotically fast row echelon form computation and matrix inversion via PLE decomposition,\n\n* asymptotically fast TRiangular System solving with Matrices (upper left, lower left),\n\n* support for Linux, OpenSolaris and OS X (all GCC).\n\nSee [Further Reading](https://bitbucket.org/malb/m4rie/wiki/Further%20Reading) for implemented algorithms.\n\n# Prerequisites \n\nM4RIE depends heavily on [M4RI](https://github.com/malb/m4ri).\n\n# Performance\n\nSee [Performance](http://malb.bitbucket.org/m4ri-e-website-2008-2015/performance.html).\n\n# Install #\n\nIf you downloaded M4RI by cloning the mainline tree at\n\nhttps://github.com/malb/m4ri\n\nyou need to first run the following command:\n\n    autoreconf --install\n\nThen do the usual\n\n    ./configure\n    make\n    make check\n\nFor details see the instructions in the file `INSTALL`.\n\n# Documentation #\n\nTo build the reference manual, ensure that you have Doxygen installed. The HTML version of the reference manual can be built as follows:\n\n    cd src/\n    doxygen\n\nThe built documentation is contained under the doc subdirectory of m4ri/. Once the HTML version is built, you can build the PDF version as follows:\n\n    cd doc/latex/\n    make\n\n# Contributors\n\nThe following people have contributed to the M4RIE library.\n\n* **[Martin Albrecht](http://martinralbrecht.wordpress.com)**\n\nWe are grateful to **[William Stein](http://modular.math.washington.edu/)** for providing our hosting and general infrastructure in the past.\n\n# Citing M4RIE\n\nIf you use our libraries in a non-trivial part of your research please consider citing them as follows:\n\n\t@manual{M4RI,\n\t    key          = \"M4RIE\",\n\t    author       = \"Martin Albrecht\",\n\t    organization = \"The M4RIE~Team\",\n\t    title        = \"{The M4RIE Library -- Version **version**}\",\n\t    year         = **year**,\n\t    url          = \"\\url{https://bitbucket.org/malb/m4rie}\",\n\t}\n\nand cite the appropriate publications mentioned in [Further Reading](https://bitbucket.org/malb/m4rie/wiki/Further%20Reading).\n\n# History\n\n* **2020/01/25** A new version of M4RIE is available with a tiny distribution bugfix. It is available at https://bitbucket.org/malb/m4rie/downloads.\n\n* **2020/01/15** A new version of M4RIE is available with a few small build system tweaks. It is available at https://bitbucket.org/malb/m4rie/downloads.\n\n* **2015/09/08** A new version of M4RIE is available improving the build system and fixing a bug in the tests. It is available at https://bitbucket.org/malb/m4rie/downloads.\n\n* **2015/04/17** Our hosting for http://m4ri.sagemath.org at University of Washington. is discontinued and we’re moving everything over to https://bitbucket.org/malb/m4ri. A copy of the old website (except for large files) is available at http://malb.bitbucket.org/m4ri-e-website-2008-2015/.\n\n* **2014/09/14** A new version of M4RI and M4RIE is available for [download](https://bitbucket.org/malb/m4rie/downloads). The biggest change is that `A-\u003eoffset` was dropped. Also, various small (multicore) performance improvements were implemented. The update for M4RIE is to maintain compatibility with M4RI. A few improvements were implemented for the mzd_poly module as well.\n\n* **2012/06/13** New versions of both M4RI and M4RIE are available for [download](https://bitbucket.org/malb/m4rie/downloads). A detailed changlog are available [here](https://bitbucket.org/malb/m4rie/wiki/M4RI-20120613) for M4RI.\n\n* **2012/04/13** New versions of both M4RI and M4RIE are available for [download](https://bitbucket.org/malb/m4rie/downloads). Detailed changlogs are available [here](https://bitbucket.org/malb/m4ri/wiki/M4RI-20120415) for M4RI and [here](https://bitbucket.org/malb/m4rie/wiki/M4RIE-20120415) for M4RIE.\n\n* **2011/12/04** New versions of both M4RI and M4RIE are available for [download](https://bitbucket.org/malb/m4rie/downloads). The highlight of this version for M4RI is support for reading and writing 1-bit PNG images. The highlight of this release of M4RIE is much improved performance for $4 \u003c e \\leq 8$. Detailed changlogs are available [here](https://bitbucket.org/malb/m4ri/wiki/M4RI-20111203) for M4RI and [here](https://bitbucket.org/malb/m4rie/wiki/M4RIE-20111203) for M4RIE.\n\n* **2011/11/30** A [technical report](http://arxiv.org/abs/1111.6900) by Martin R. Albrecht is available describing the M4RIE library. In particular, Newton-John tables are introduced and our implementation of Karatsuba based matrix-matrix multiplication is described:\n\n  \u003e **The M4RIE library for dense linear algebra over small fields with even characteristic**\n  \u003e  \n  \u003e *Abstract:* In this work, we present the M4RIE library which implements efficient algorithms for\n  \u003e linear algebra with dense matrices over GF(2^e) for 2 ≤ e ≤ 10. As the name of the library\n  \u003e indicates, it makes heavy use of the M4RI library both directly (i.e., by calling it) and\n  \u003e indirectly (i.e., by using its concepts). We provide an open-source GPLv2+ C library for\n  \u003e efficient linear algebra over GF(2^e) for e small. In this library we implemented an idea due to\n  \u003e Bradshaw and Boothby which reduces matrix multiplication over GF(p^k) to a series of matrix\n  \u003e multiplications over GF(p). Furthermore, we propose a caching technique - Newton-John tables -\n  \u003e to avoid finite field multiplications which is inspired by Kronrod's method (\"M4RM\") for matrix\n  \u003e multiplication over GF(2). Using these two techniques we provide asymptotically fast triangular\n  \u003e solving with matrices (TRSM) and PLE-based Gaussian elimination. As a result, we are able to\n  \u003e significantly improve upon the state of the art in dense linear algebra over $F(2^e) with 2 ≤ e\n  \u003e ≤ 10.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalb%2Fm4rie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalb%2Fm4rie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalb%2Fm4rie/lists"}