A modern, interactive Web GUI for the ma1522-linear-algebra library.
This project provides a beautiful, user-friendly graphical interface for performing symbolic linear algebra computations, making advanced operations accessible without writing any Python code.
- Interactive Matrix Editor: Input matrices using an intuitive grid that dynamically resizes, or use text mode for LaTeX and Python lists.
- MathJax Integration: Outputs are beautifully typeset in LaTeX math notation, rendering complex fractions, roots, and matrices elegantly.
- Step-by-Step Solutions: View detailed breakdown steps for operations like REF, eigenvalues, and diagonalizations.
- Core Algorithms: Computes REF, RREF, LU Factorization, QR Factorization, SVD, and Diagonalization purely symbolically (yielding exact answers).
- Vector Spaces: Calculate orthogonal complements, intersections, projections, and transition matrices.
- Equivalent Statements: Instantly analyze matrix properties (invertibility, rank, nullity, etc.) against the MA1522 syllabus checklist.
- Safe & Asynchronous: Heavy operations use background threading and timeout controls to keep the UI fluid and prevent server lockups.
This project is built using modern Python tooling and highly optimized for speed.
- Python 3.10+
- uv (recommended Python package manager. Install uv here)
-
Clone the repository:
git clone git@github.com:Tuxedolphin/linear-algebra.git cd linear-algebra -
Establish dependencies:
# uv will automatically create a virtual environment and install dependencies uv sync
Start the local FastAPI development server:
# Run from the root directory to ensure imports resolve
PYTHONPATH=src uv run uvicorn src.gui.app:app --port 8000 --reloadFinally, open your browser and navigate to: http://localhost:8000
Original Library & Core Algorithms: Developed by YeeShin504 and contributors.
This repository extends their robust symbolic ma1522 engine with a rich local frontend suite.