Observed since 20 Oct, 17:09 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Sparse, vectorized algebra over countably infinite bases: symmetric functions, Clifford and Weyl algebras, polynomials, with integer partitions encoded as bit patterns.
Sparse, vectorized algebra over countably infinite bases.
Many algebras in mathematics have a countable basis: polynomials in infinitely many variables, symmetric functions, Clifford and exterior algebras, Weyl algebras, class algebras of symmetric groups. abakus computes in such algebras directly in a chosen basis, with numpy arrays and Numba-compiled kernels.
Vectors and bases. An element of an algebra is a Vector: a finite linear
combination of basis elements, stored as an integer index array and a
coefficient array. A basis is a class that knows what its indices mean. It
defines multiplication, comultiplication and changes of basis on whole arrays
of indices at once. Tensor products, smash products and linear maps are built
uniformly on top of this.
Countably infinite bases. Most bases are infinite: all partitions, all monomials in infinitely many variables. Each vector touches only finitely many basis elements, and indices grow as needed. Beyond the int64 range, indices turn into exact Python integers on their own.
Tensor products are built uniformly: index rows are placed side by side,
a @ b is a⊗b, and Koszul signs appear when two factors are superalgebras.
Smash products such as Weyl algebras are tensor products with a twisted
multiplication.
Partitions as integers. An integer partition is encoded by the boundary of
its Ferrers diagram: a step up is a 1 bit, a step right is a 0 bit. The
partition (8, 5, 2, 2) becomes 0b10001000110 == 1094. Partitions are then
plain integers that can live in numpy arrays. Containment of diagrams implies
x <= y. Horizontal and vertical strips, rim hooks, and transposition become
bit operations. So do the Pieri, Littlewood–Richardson and Murnaghan–Nakayama
rules (see docs/BinaryPartitions.md).
>>> from abakus.symm import s, h, p
>>> s(2, 1) * s(1) # Littlewood–Richardson rule
s{2,2} + s{3,1} + s{2,1,1}
>>> h(s(2, 1)) # Jacobi–Trudi
-h{3} + h{2,1}
>>> s(p(3)) # Murnaghan–Nakayama
s{3} - s{2,1} + s{1,1,1}
>>> s(100) * s(100) == s(h(100, 100))
True
>>> from abakus import bpart
>>> x = bpart.from_lambda([8, 5, 2, 2])
>>> x
1094
>>> bpart.to_lambda(bpart.transpose(x))
[4, 4, 2, 2, 2, 1, 1, 1]
>>> from abakus.clifford import CliffordAlgebraBasis, ExteriorAlgebraBasis as E
>>> C = CliffordAlgebraBasis[3, 0]
>>> C.u * C.v, C.v * C.u, (C.u + C.v) ** 2
(uv, -uv, 2)
>>> from abakus.polynomial import PolynomialBasis
>>> from abakus.weyl import polynomial_weyl_basis
>>> W = polynomial_weyl_basis(PolynomialBasis["x"])
>>> W.dx * W.x
1 + x∂
>>> s(2) @ E.u
s{2}⊗u
More in the tutorial, in docs/SymmetricFunctions.md and in docs/TensorProducts.md.
| Module | Contents |
|---|---|
abakus.vector | Vector, VectorBasis, tensor products, linear and bilinear maps |
abakus.bpart | integer partitions encoded as ints, scalar and array versions |
abakus.polynomial | (Laurent) polynomials in finitely many variables |
abakus.infpoly | polynomial rings with bases indexed by partitions |
abakus.clifford | Clifford and exterior algebras |
abakus.symm | symmetric functions (e, h, p, m, Schur), class algebras, Ivanov–Kerov algebra |
abakus.weyl | Weyl algebras as smash products |
pip install abakus
Requires Python 3.14 or later, numpy and Numba.
For development:
pip install -e ".[dev]"
pytest
MIT, see LICENSE.
pypistats · 6 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-17 – 2026-10-17 | 4 | 2026-10-20T18:20:01.9491151Z |
| 2026-10-16 – 2026-10-16 | 3 | 2026-10-20T18:20:01.9491151Z |
| 2026-10-15 – 2026-10-15 | 4 | 2026-10-20T18:20:01.9491151Z |
| 2026-10-14 – 2026-10-14 | 7 | 2026-10-20T18:20:01.9491151Z |
| 2026-10-13 – 2026-10-13 | 26 | 2026-10-20T18:20:01.9491151Z |
| 2026-10-12 – 2026-10-12 | 94 | 2026-10-20T18:20:01.9491151Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 12 Oct 2026 | 4 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:09 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1e33fa30f37e6ff6833413083dc5b37cb49fa60b3a721292e7a16c6c909582be