Linear System Solver Modulo a Prime
This repository contains a small solver for systems of linear equations with coefficients in (\mathbb{Z}_p), where (p) is a prime. It supports both a terminal interface and a minimal web-based calculator suitable for hosting on GitHub Pages.
Features
- core algorithm in
solver/alg.py; no dependencies other than the standard library - command-line tool (
python -m solveror viasolver.cli) that can read a matrix interactively, from a file, or from a pipe - static web page (
docs/index.html) with a JavaScript port of the algorithm – perfect for.github.iopages
Installation
You can use the package directly from the source directory:
python3 -m venv .venv # optional virtual env
source .venv/bin/activate
pip install -e . # later, if packaging added
Command‑line usage
# interactive mode
python -m solver -p 7 -i
# read matrix from file
python -m solver -p 13 -f matrix.txt
# read from standard input
cat matrix.txt | python -m solver -p 5
The matrix file should contain one row per equation; each row must have the coefficients followed by the constant term, separated by spaces.
Example
$ cat matrix.txt
1 1 2
1 6 0
$ python -m solver -p 7 -f matrix.txt
solution: [2, 0]
Web interface
Currently, the web interface is available here.
Open docs/index.html in a browser or host the contents of the
docs/ directory using GitHub Pages. You can point the Pages source to
/docs via the repository settings and the page will be available at
https://<your-username>.github.io/<repo-name>/.
The page allows you to paste a matrix and a prime modulus, then click "Solve" to see the result.
Development
- tests can be added under
tests/usingpytest - the algorithm is written to keep mutation local; helper functions are pure and easily ported to other languages
Feel free to extend the UI or add more command‑line options!
Metadata
Release files for lin-sys-mod-solver 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lin_sys_mod_solver-0.1.1.tar.gz | 4.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lin_sys_mod_solver-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.6 kB
Release files / lin_sys_mod_solver-0.1.1.tar.gz
| Download URL | lin_sys_mod_solver-0.1.1.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0a7b835d0adec403afb37a25809e2649e7256778f3676da68dab6a72114d345
|
|
BLAKE2b-256 checksum How to use checksums |
00e47c730a8d7cd6f257588934bd940ba999db202974d5c265c63c3232bbb3fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|
Release files / lin_sys_mod_solver-0.1.1-py3-none-any.whl
| Download URL | lin_sys_mod_solver-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b29da981438d74766f2b2762e1d0a3ed6d7a146f79f7e552693dbcedb71e81f7
|
|
BLAKE2b-256 checksum How to use checksums |
318e8ef2e8a3c04e3da421e7cd7155648cc327cdc65d40d4918e844754342fdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|