Skip to main content

sagebrush

Fast, certified engines for research mathematics, in Rust, for Python. Permissively licensed (MIT OR Apache-2.0): use them anywhere, in anything, from agents and notebooks to products. No C libraries; one abi3 wheel per platform covers Python 3.9 and later.

This is an early release of Sagebrush, which also runs in the browser at sagebrush.space.

>>> from sagebrush import nf, mf, ap, poly

>>> nf.bnf([-11, 0, 0, 1])              # Q[x]/(x^3 - 11): class group, regulator
{'cyc': [2], 'degree': 3, 'disc': -3267, 'h': 2, 'r1': 1, 'r2': 1, 'regulator': '5.5872066260609077619', 'w': 2}

>>> nf.factor_integer(2**128 + 1)       # ECM
[(59649589127497217, 1), (5704689200685129054721, 1)]

>>> nf.primes_above([-11, 0, 0, 1], 5)  # 5 = P_1 P_2 with residue degrees 1, 2
[{'e': 1, 'f': 1, 'p': 5, 'pi': [-1, 1, 0], 'pi_den': 1}, {'e': 1, 'f': 2, 'p': 5, 'pi': [1, 1, 1], 'pi_den': 1}]

>>> nf.lll([[1, 1, 1], [-1, 0, 2], [3, 5, 6]])
[[0, 1, 0], [1, 0, 1], [-1, 0, 2]]

>>> poly.factor([5, -1, -1, 1])         # x^3 - x^2 - x + 5 over Z
(1, [([5, -1, -1, 1], 1)])

>>> d = mf.newforms(389, 2, bound=6)    # newform orbits of S_2(Gamma0(389))
>>> d["status"], [(o["letter"], o["dim"]) for o in d["newforms"]]
('proven', [('a', 1), ('b', 2), ('c', 3), ('d', 6), ('e', 20)])

Polynomials are coefficient lists, constant term first.

Sage-compatible: sagebrush.sage

For Sage users, sagebrush.sage is a namespace with Sage's names, behaviour and printing, for what Sagebrush implements: number fields, polynomials, matrices, modular forms and symbols, elliptic curves, Dirichlet characters, integers, plotting.

>>> from sagebrush.sage import *
>>> factor(2026)
2 * 1013
>>> x = PolynomialRing(QQ, 'x').gen()
>>> K = NumberField(x**3 + 17*x + 1, 'a')
>>> K.class_group()
Class group of order 3 with structure C3 of Number Field in a with defining polynomial x^3 + 17*x + 1
>>> K.regulator()
2.83341678218613
>>> K.factor(11)
(Fractional ideal (11, a + 3))^2 * (Fractional ideal (11, a + 5))
>>> Integer(2026).is_prime(), Integer(2026) / 4
(False, 1013/2)
>>> EllipticCurve('389a1').rank()
2

This is plain Python, without Sage's preparser: write x**3 (x^3 is xor in Python, and raises an error here as in Sage), Integer(2)/3 for a rational (2/3 is a float), and K = NumberField(f, 'a'); a = K.gen() for K.<a> = NumberField(f). Integers from Integer(n) or ZZ(n) have Sage's methods. The output is checked line by line against Sage itself: Sage's own preparser turns Sagebrush's Sage test files into plain Python, and their output under sagebrush.sage must equal Sage's.

Engines

  • sagebrush.nf: number fields: maximal orders, prime ideals, class groups, units and regulators (assuming GRH, with a field-specific bound for the generators), quadratic class groups to |D| ~ 10^60; integer factoring (ECM); Hermite and Smith forms, LLL; complex roots to any precision.
  • sagebrush.mf: modular forms of weight k >= 2 with character: dimensions, exact Hecke characteristic polynomials, newform orbits, trace forms.
  • sagebrush.modsym: weight-2 modular symbols for Gamma0(N).
  • sagebrush.ap: traces of Frobenius a_p of elliptic curves over Q.
  • sagebrush.poly: factoring in Z[x] and F_p[x].

Results are checked against independent systems: PARI for class groups, Sage and Magma for the rest, and LMFDB for modular forms.

License

Copyright (c) 2026 SageMath, Inc. Licensed under either of the Apache License, Version 2.0 or the MIT license, at your option.

Metadata

Release files for sagebrush 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sagebrush 0.2.1
File Size Uploaded
sagebrush-0.2.1.tar.gz 463.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for sagebrush 0.2.1
File
sagebrush-0.2.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
sagebrush-0.2.1-cp39-abi3-manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64 Details
sagebrush-0.2.1-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
sagebrush-0.2.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
sagebrush-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 6.8 MB

Release files / sagebrush-0.2.1.tar.gz

Download URL sagebrush-0.2.1.tar.gz
Size 463.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ceec8750bbf1b9bbca0fdebbd0f66ec51324184c62f1ad6d04a072f9020d4b69
BLAKE2b-256 checksum
How to use checksums
78a3b1a84071c390df72aeef2af445cf82015cb1647ca0eb02a6dc610541f337
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / sagebrush-0.2.1-cp39-abi3-win_amd64.whl

Download URL sagebrush-0.2.1-cp39-abi3-win_amd64.whl
Size 1.3 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f148789fd76eb6cffad7cec50cea769004b51233db021363e8b31c93d0af3a6f
BLAKE2b-256 checksum
How to use checksums
25eeebdbe7edf9a43752b878b0283e97660e6d5a756062151d3532aee13851a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / sagebrush-0.2.1-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL sagebrush-0.2.1-cp39-abi3-manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
c73fb188104a20ce59d116b221fca0e30b08f0e33a641774f963b4ddf732c11c
BLAKE2b-256 checksum
How to use checksums
bbed05e67848af110077705021daafc6be3a31eef8afa7483512a242aaa3a7be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / sagebrush-0.2.1-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL sagebrush-0.2.1-cp39-abi3-manylinux_2_28_aarch64.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
540c4955bcab2508812bc968c59ce24bddfbd6eacdf73ad80971a34315d51f9a
BLAKE2b-256 checksum
How to use checksums
0cfd69e22553292751fc19b597fc5a67189b34a26c6f392619ffd0756d05a6ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / sagebrush-0.2.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL sagebrush-0.2.1-cp39-abi3-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1b0fb2d50408e0bfbc4d64a57ccf5ff295492a108ebc887f944336514615bafb
BLAKE2b-256 checksum
How to use checksums
f08020a5a38a3edf7df548e767c9413b6a9e1009819923a2b1300f135a8edcd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / sagebrush-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL sagebrush-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
944e483455ee24f96ca07c128e65de927d01356dd5e92dc21d49347c6e4320d9
BLAKE2b-256 checksum
How to use checksums
4eccfae0b133c16cdb0c94e98088c605dc1dcfcfb57d17d08dfa71f751e7dccc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.2

6 release files

0.7.1

6 release files

0.7.0

6 release files

0.6.0

6 release files

0.5.1

6 release files

0.5.0

6 release files

0.4.0

6 release files

0.3.0

6 release files

0.2.2

6 release files

This release

0.2.1 This release

6 release files

0.2.0

6 release files

0.1.0

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page