rustymath
Rustymath provides fast elementary and special functions, statistics, searching and sorting, random sampling, linear algebra, optimization, polynomials and exact arithmetic in Rust and Python. It is the numerical core of BasedPL.
The Python package needs no NumPy. Its eager operations use the same broadcasting, selection and tolerant-comparison rules as the shared Rust core. For richer array notation, operators and fusion, use BasedPL.
Elementary float functions target four units in the last place (ulps). Rustymath prioritizes speed over last-bit agreement and reproducibility.
Install
pip install rustymath
Rust users can add the crate to Cargo.toml. See Using rustymath from Rust for scalar and slice forms, build settings, accuracy and speed.
import rustymath as rm
Arrays and indexing
Functions take Python numbers, nested lists, rustymath arrays or buffer exporters such as NumPy arrays. Broadcasting aligns leading axes. A two-item vector adds one value to each row of this matrix:
rm.add([[1, 2, 3], [4, 5, 6]], [10, 20])
Array([[11, 12, 13], [24, 25, 26]], dtype=int64)
Arrays and indexing covers construction, dtypes, selection, reshaping, axis names, keys and interoperability.
Maths and statistics
Real and complex functions operate on whole arrays. Float comparisons use a relative tolerance by default:
rm.exp([0., 1, 2]), rm.equal(0.1 + 0.2, 0.3)
(Array([1.0, 2.7182818, 7.3890561], dtype=float64), True)
Maths and statistics covers elementary and special functions, reductions, scans, statistics and tolerant comparison.
Searching, sorting and selection
unique retains first-occurrence order and reports each value’s position, class number and count:
rm.unique([3, 1, 3, 2])
Unique(values=Array([3, 1, 2], dtype=int64), firsts=Array([0, 1, 3], dtype=int64), numbers=Array([0, 1, 0, 2], dtype=int64), counts=Array([2, 1, 1], dtype=int64))
Searching, sorting and selection distinguishes tolerant matching from exact ordering.
Random numbers and distributions
Distributions provide density, cumulative probability, quantiles and seeded sampling:
normal = rm.distribution.normal()
normal.cdf([-1.96, 0, 1.96]), normal.sample(3, seed=0)
(Array([0.024997895, 0.5, 0.9750021], dtype=float64),
Array([0.11623959, -0.78285485, -2.3346353], dtype=float64))
Random numbers and distributions covers sampling and probability functions.
Linear algebra
Solve real or complex systems, including least-norm solutions for singular or non-square matrices:
rm.linalg.solve([[4., 1], [1, 3]], [1., 2])
Array([0.090909091, 0.63636364], dtype=float64)
Linear algebra covers matrix products, reusable factorizations, decompositions and least squares.
Optimization and iterative solves
Minimize functions, fit residuals or find roots. Here Brent’s method finds where cos x = x:
rm.optimize.root_scalar(lambda x: rm.cos(x) - x, [0, 1]).root
0.7390851350713886
Optimization and iterative solves also covers matrix-free linear systems.
Polynomials, exact arithmetic and number theory
Polynomial coefficients start from the constant term. Number-theory functions accept Python integers of any size:
rm.polynomial.polyroots([-6, 11, -6, 1]), rm.number_theory.factor(2**64 + 1)
(Array([(1+0j), (2-0j), (3+0j)], dtype=complex128),
[(274177, 1), (67280421310721, 1)])
Polynomials, exact arithmetic and number theory includes rational matrix solves and calculations with fractions.Fraction.
Accuracy and speed
The Rust page’s Accuracy and speed section compares each function’s speed with Rust’s standard library. It also explains how the 4-ulp bound holds for f16, with and without fused multiply-add, and for pow and root.
Licence
Apache-2.0. Some algorithms and constants come from SLEEF and Arm Optimized Routines. THIRD-PARTY.md has their notices.
Metadata
Release files for rustymath 0.1.33
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rustymath-0.1.33.tar.gz | 2.1 MB | Details |
Built distributions (wheels)
Total release size: 36.0 MB
Release files / rustymath-0.1.33.tar.gz
| Download URL | rustymath-0.1.33.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
63473ac2e3f0456568a3aa22e4fea934bd9672b0ffa030c613b321854f7f0a6d
|
|
BLAKE2b-256 checksum How to use checksums |
7dbde28aeba929b62a44677e54a554f8ada19e9de0708bbd177e89c9a7939240
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustymath-0.1.33-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
72c1a97e099fa5d41b23b945b1d532d2f414acd2c3f1cb0a90a022ef3c21d56c
|
|
BLAKE2b-256 checksum How to use checksums |
432ffde5e2e05de3d4c297d651b51ec3bfc283a6334fc2962a75973cc6335695
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | rustymath-0.1.33-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
1cda5cef364c5ddb460ce5de11ae9453f7f388c7217d9b2d92bb8f59c7ddec9d
|
|
BLAKE2b-256 checksum How to use checksums |
ae736400e30d2349410978ed3627882d9f83088a0241b6da521b677f24c2a2b9
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp313-cp313-macosx_15_0_arm64.whl
| Download URL | rustymath-0.1.33-cp313-cp313-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.13 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d82b3ef0d11cd0e98d9edc545704eaa4c0d4f432b5b799f7f4bf26975983d986
|
|
BLAKE2b-256 checksum How to use checksums |
91da549f3df0e43b1a2f56abad04239c3a2c8ae86ae457ad6d5bafebbdee266c
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustymath-0.1.33-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
773345530beab73712da73d40b147044405f757a50a7ddb57f88e05ccb90354f
|
|
BLAKE2b-256 checksum How to use checksums |
cdbb8ce7326167db7bb3bfb3a2820064752194404847a858b1d8c4d7ded14e20
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | rustymath-0.1.33-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
f5269d24a19c7bf9086ec220cb6148d147312296e84a6e16503e227d1941eeb1
|
|
BLAKE2b-256 checksum How to use checksums |
67176cc1326d80a69034da7a2b860b20c9aa2d46948092a936712616d95c8455
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp312-cp312-macosx_15_0_arm64.whl
| Download URL | rustymath-0.1.33-cp312-cp312-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.12 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5861fe911a8074a7afe3bba2372dd48615b68c16e79749e59c8c0b936ae81756
|
|
BLAKE2b-256 checksum How to use checksums |
bc0d64001a0cf298fad46b2ba988e7128356f9f9a1f8d3dfeb69e0b6cd5aedd4
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustymath-0.1.33-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
2a087dba0dbd05f761509cbcb3722b99145a9342e7c7a5803a37de85499eb223
|
|
BLAKE2b-256 checksum How to use checksums |
3d6350ea339a47cbfa92427a970b165ed910576a6e2a41af031025524726aec1
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | rustymath-0.1.33-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
ec895d9c09e93ebfce1371154a4d6fa485a00054e14d14c661be5fa1c3664bc0
|
|
BLAKE2b-256 checksum How to use checksums |
b8d2596a2c66ae5a45e426a081cd5fa89971ce382e18eb9ab6e0671b0107b108
|
| 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 18, 2026.
Transparency logRelease files / rustymath-0.1.33-cp311-cp311-macosx_15_0_arm64.whl
| Download URL | rustymath-0.1.33-cp311-cp311-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.11 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
22435823f3f454375a33d01d45ded90131e2884c132280bbecf2206c8c426b17
|
|
BLAKE2b-256 checksum How to use checksums |
cc329fc224c0a74ce6a18d15e8cc4d3c00c7e8e95a2100d5a87d4a3c6db3f10a
|
| 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 18, 2026.
Transparency log