AlgebraX - Algebraic Primitives for Sparse Data Structures in Python
| Package |
|
| Code |
|
| Tools |
|
| CI/CD |
|
| Scans |
|
AlgebraX treats Python's native dict as a first-class sparse algebraic object, unifying linear algebra, graph
algorithms, formal language theory, signal transforms, and information metrics under a single polymorphic framework.
Key Features
- ⚡ Zero Heavy Dependencies: Pure Python core requiring no C++ build steps. Includes native bidirectional converters between sparse dict mappings and dense multidimensional arrays.
- 🔄 Polymorphic Semiring Computing: By swapping the algebraic semiring $(\oplus, \otimes)$, the exact same matrix algorithms compute standard linear algebra, tropical shortest path latencies, or symbolic rule provenance.
- 🌌 Sparse Multidimensional Tensors: Arbitrary nested mappings behave as infinite-dimensional sparse tensors, tries,
and lattices (
AlgebraicTrie) with custom key operators. - 🔬 Interactive Desktop GUI: Repo includes DearPyGui with 12 interactive modules, dynamic texture previews, force-directed graph canvases, and signal transforms.
Installation
# Using uv (recommended)
uv add algebrax
# Using pip
pip install algebrax
5-Minute Quickstart
By changing the semiring parameter in matrix.dot, you can transform standard linear matrix multiplication into
shortest-path solvers or symbolic rule derivation tracking:
from algebrax.matrix import dot
from algebrax.semiring import ProvenanceSemiring, StandardSemiring, TropicalSemiring
# Define a Sparse Graph Adjacency / Distance Matrix
graph = {
0: {1: 2.0, 2: 10.0},
1: {2: 3.0},
}
# 1. Standard Linear Matrix Multiplication (+, *)
linear_mult = dot(graph, graph, semiring=StandardSemiring())
print('Linear Combination (0->2):', linear_mult[0][2])
# Output: 30.0
# 2. Tropical Shortest Path (min, +)
shortest_path = dot(graph, graph, semiring=TropicalSemiring())
print('Shortest Path Cost (0->1->2):', shortest_path[0][2])
# Output: 5.0
# 3. Symbolic Provenance Rule Tracking
provenance_graph = {
0: {1: {('rule_A',): 1}, 2: {('rule_C',): 1}},
1: {2: {('rule_B',): 1}},
}
provenance_mult = dot(provenance_graph, provenance_graph, semiring=ProvenanceSemiring())
print('Symbolic Derivation Polynomial:', provenance_mult[0][2])
# Output: {('rule_A', 'rule_B'): 1}
Use Case Recipes & Jupyter Notebooks
The recipes/ directory contains standalone CLI scripts and matching interactive .ipynb notebooks for 19 real-world scenarios:
| Category | Use Case Recipe Script | Jupyter Notebook | Core Algebraic Components |
|---|---|---|---|
| Image Processing | image_processing.py |
image_processing.ipynb |
transforms.convolve, StandardSemiring, ArcticSemiring, TropicalSemiring |
| Traffic Resilience | traffic_network_resilience.py |
traffic_network_resilience.ipynb |
semiring.TropicalSemiring, matrix.power, analysis.forman_ricci_curvature |
| NLP Parsing | nlp_provenance_parser.py |
nlp_provenance_parser.ipynb |
matrix.dot, semiring.ProvenanceSemiring, probability.entropy |
| Post-Quantum Security | post_quantum_crypto_exchange.py |
post_quantum_crypto_exchange.ipynb |
semiring.DigitalSemiring, transforms.z_transform, probability.mutual_information |
| Supply Chain Logistics | supply_chain_optimal_transport.py |
supply_chain_optimal_transport.ipynb |
trie.AlgebraicTrie, lattice.join, lattice.meet, probability.kl_divergence |
| Financial Risk | financial_risk_portfolio.py |
financial_risk_portfolio.ipynb |
automata.simulate_dfa, matrix.academic.eigen_centrality, semiring.VarianceSemiring |
| Structural Analysis | vibration_structural_analysis.py |
vibration_structural_analysis.ipynb |
group.compose, group.signature, matrix.academic.determinant, transforms.hilbert |
| Telecommunications | telecom_fractal_network.py |
telecom_fractal_network.ipynb |
transforms.walsh_hadamard, analysis.laplacian, metrics.box_counting_dimension |
| Quantum Optimization | quantum_convex_optimization.py |
quantum_convex_optimization.ipynb |
transforms.legendre_fenchel, matrix.block_diag, matrix.trace, automata.simulate_nfa |
| Sensor Reliability | sensor_network_reliability.py |
sensor_network_reliability.ipynb |
semiring.ViterbiSemiring, matrix.power, analysis.gaussian_kernel, analysis.gradient |
| Holographic Duality | holographic_bulk_boundary.py |
holographic_bulk_boundary.ipynb |
analysis.forman_ricci_curvature, analysis.divergence, trie.AlgebraicTrie, probability.entropy |
| Optical Holography | optical_holography_simulation.py |
optical_holography_simulation.ipynb |
transforms.dft, transforms.idft, probability.entropy |
| Topological Data Analysis | topological_data_analysis.py |
topological_data_analysis.ipynb |
semiring.BooleanSemiring, matrix.power, analysis.forman_ricci_curvature, matrix.academic.determinant |
| Control Theory | control_theory_state_space.py |
control_theory_state_space.ipynb |
matrix.power, transforms.z_transform, matrix.academic.determinant |
| Algebraic Knot Theory | algebraic_knot_theory.py |
algebraic_knot_theory.ipynb |
semiring.KnotSemiring, semiring.MonoidAlgebraSemiring, group.compose, group.signature |
| Sheaf Cohomology | sheaf_cohomology_consensus.py |
sheaf_cohomology_consensus.ipynb |
analysis.gradient, analysis.laplacian, semiring.MonoidAlgebraSemiring |
| Trajectoid Kinematics | trajectoid_rolling_kinematics.py |
trajectoid_rolling_kinematics.ipynb |
analysis.gradient, matrix.dot, metrics.sparsity |
| Sparse Tensor Einsum | sparse_tensor_einsum.py |
sparse_tensor_einsum.ipynb |
tensor.einsum, tensor.outer_product, tensor.tensordot, tensor.flatten_tensor |
| Black Hole Spacetime | blackhole_spacetime_simulation.py |
blackhole_spacetime_simulation.ipynb |
tensor.einsum, transforms.z_transform, analysis.gradient, probability.entropy |
| 3D Gaussian Splatting | gaussian_splatting_rendering.py |
gaussian_splatting_rendering.ipynb |
matrix.dot, matrix.transpose, analysis.gaussian_kernel |
| Simplicial Homology | topological_homology_betti.py |
topological_homology_betti.ipynb |
homology.SimplicialComplex, homology.betti_numbers, analysis.SparseChainComplex |
| Clifford Geometric Algebra | clifford_rotor_kinematics.py |
clifford_rotor_kinematics.ipynb |
clifford.CliffordSemiring, clifford.rotor_rotation, semiring.QuotientMonoidAlgebraSemiring |
| Galois Finite Fields | galois_field_cryptography.py |
galois_field_cryptography.ipynb |
galois.GaloisFieldSemiring, galois.gf_matrix_mul, semiring.QuotientMonoidAlgebraSemiring |
| Categorical Kleisli Monads | categorical_kleisli_monads.py |
categorical_kleisli_monads.ipynb |
category.kleisli_compose, semiring.ViterbiSemiring, semiring.TropicalSemiring |
Run any recipe using uv:
uv run recipes/image_processing.py
Graphical Desktop Laboratory
Launch the interactive DearPyGui laboratory application featuring 12 interactive modules, live image convolution texture previews, force-directed graph canvases, signal transforms, and information theory calculators:
uv run recipes/lab.py
Documentation
Comprehensive documentation is hosted online and structured into 3 Diátaxis pillars:
- 🚀 Start: Installation, quickstart, and core philosophy.
- 📖 Tutorials: In-depth guides for Semirings, Tries, Transforms, Graphs, and Benchmarks.
- 🍳 Recipes & GUI Lab: Real-world use cases and laboratory documentation.
License
Distributed under the MIT License. See LICENSE for more information.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file algebrax-0.5.0.tar.gz.
File metadata
- Download URL: algebrax-0.5.0.tar.gz
- Upload date:
- Size: 38.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47b1473da26c1037ea61627401cf898c24c782d0f10897e16572144d6822cab7
|
|
| MD5 |
c25efe3a8c42277aa6907587a70c18e1
|
|
| BLAKE2b-256 |
911e30efb216d0c3a4f9c01ac4213b97436329197d6dcd32e6c9a5011c90d3ca
|
File details
Details for the file algebrax-0.5.0-py3-none-any.whl.
File metadata
- Download URL: algebrax-0.5.0-py3-none-any.whl
- Upload date:
- Size: 63.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97257f4f22de2598d5a09c785b7809cfc79cfdc01ad3703bfd820f0fc25e387a
|
|
| MD5 |
47afd31b9b51f25782a9d9464978d859
|
|
| BLAKE2b-256 |
0373265e1feb5a5844a84296a45da1106a1614d77d9a5eeeed523f06f15059ff
|