Solver for linear systems modulo a prime
Project description
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!
Project details
Release history Release notifications | RSS feed
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 lin_sys_mod_solver-0.1.1.tar.gz.
File metadata
- Download URL: lin_sys_mod_solver-0.1.1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0a7b835d0adec403afb37a25809e2649e7256778f3676da68dab6a72114d345
|
|
| MD5 |
084fe89007f698dd5fae3b6a024c633b
|
|
| BLAKE2b-256 |
00e47c730a8d7cd6f257588934bd940ba999db202974d5c265c63c3232bbb3fd
|
File details
Details for the file lin_sys_mod_solver-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lin_sys_mod_solver-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b29da981438d74766f2b2762e1d0a3ed6d7a146f79f7e552693dbcedb71e81f7
|
|
| MD5 |
f681c9aef5fb0a5000fc4e22e4560161
|
|
| BLAKE2b-256 |
318e8ef2e8a3c04e3da421e7cd7155648cc327cdc65d40d4918e844754342fdb
|