Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

What is Algebraeon?

Algebraeon is a computer algebra system written purely in Rust. It implements algorithms for working with matrices, polynomials, algebraic numbers, factorizations, etc. The general focus is on number theory and exact algebraic computations over approximate numerical solutions. A growing subset of the features are available as a Python module.

Warning

The API is subject to breaking changes at this time. The hope is to stabilize things more in the future.

That said, each release should be fully functional and bug-free. Please report any issues here.

Source Code and Contributing

The project is open source and hosted on GitHub here. See the contributing section for more information on how to contribute.

Links

Crates

Algebraeon is published to crates.io under an umbrella crate algebraeon and re-exports the sub-crates:

A Taster

To give a flavour of what it’s about, here is a non-exhaustive list of the things Algebraeon can already do:

  • Factoring and primality testing of integers.
  • Factoring polynomials defined over finite fields, the integers, the rational numbers, algebraic number fields.
  • Polynomial root isolation and arithmetic in the real line, complex plane, and \(p\)-adics.
  • Linear algebra; matrix image and kernel, solving linear systems, LLL lattice basis rediction, Jordan normal form, Hermite normal form, Smith normal form, boolean operations with linear subspaces.
  • Algebraic number fields; computing the ring of integers, working with ideals, factoring ideals.
  • Coset enumeration for finitely presented groups.
  • Multiplication tables for small finite groups.