# QuatIca: Quaternion Linear Algebra Library
<div align="center">
<img src="https://raw.githubusercontent.com/vleplat/QuatIca/main/Logo.png" alt="QuatIca Logo" width="250">
</div>
**Numerical linear algebra for quaternions โ fast, practical, and wellโtested.**
## ๐ Documentation
**๐ [Complete Documentation](https://vleplat.github.io/QuatIca/)** - Comprehensive guides, API reference, and examples
**Quick Links:**
- **[Getting Started](https://vleplat.github.io/QuatIca/getting-started/)** - Setup and installation guide
- **[Examples](https://vleplat.github.io/QuatIca/examples/)** - Copy-paste commands and code snippets
- **[API Reference](https://vleplat.github.io/QuatIca/api/utils/)** - Complete function documentation
- **[Troubleshooting](https://vleplat.github.io/QuatIca/troubleshooting/)** - Common issues and solutions
## ๐ Try it Online - Colab Demos
**No installation required! Try QuatIca directly in your browser:**
### ๐ฏ **Getting Started**
| Demo | Description | Link |
|------|-------------|------|
| **๐ฌ Core Functionality Demo** | Test all major features including matrix operations, decompositions, and advanced algorithms without any setup. | [Open in Colab](https://colab.research.google.com/drive/1LQMnpGdSiWZsXjZQrMp1BmVT9Uzt_CKM?usp=sharing) |
### ๐ผ๏ธ **Image Processing Applications**
| Demo | Description | Link |
|------|-------------|------|
| **Image Completion** | Fill missing pixels in real images using quaternion matrix completion algorithms. | [Open in Colab](https://colab.research.google.com/drive/1-LB6T6caPmayvtcWcIMNXQgiVI16HOQy?usp=sharing) |
| **Image Deblurring (Technical)** | Reproducible benchmarks comparing FFTโNSโQ and QSLSTโFFT on Kodak images with ฮป-optimization, PSNR/SSIM reporting, and LaTeX tables. | [Open in Colab](https://colab.research.google.com/drive/1cm8oW5PhPNtI1lfNDYMvNm9xgJLFgO7n?usp=sharing) |
| **Image Deblurring (Visual)** | Same as above but with beautiful visual examples and side-by-side comparisons. | [Open in Colab](https://colab.research.google.com/drive/1vqWvo2ilFZcCnic5VDlf0z-KPzA8J17f?usp=sharing) |
### ๐ **Algorithm Benchmarks**
| Demo | Description | Link |
|------|-------------|------|
| **Pseudoinverse Methods Comparison** | Comprehensive benchmark of NS (ฮณ=1), HON (3rd), RSP-Q (col), Hybrid RSP+NS, and CGNEโQ with runtime and accuracy analysis. | [Open in Colab](https://colab.research.google.com/drive/1H2a4M64RS5GNLzv1FcP-kviTg3qvlez6?usp=sharing) |
| **Q-GMRES Performance Analysis** | Statistically robust comparison of Q-GMRES with and without LU preconditioning across multiple matrix types, producing publication-ready dashboards. | [Open in Colab](https://colab.research.google.com/drive/1re00YLCsXZtiG9tIgB1UPvMcXN8VkO70?usp=sharing) |
### ๐ฌ **Research Applications**
| Demo | Description | Link |
|------|-------------|------|
| **Lorenz Attractor Benchmark** | Q-GMRES vs NewtonโSchulz comparison on quaternion linear systems from the Lorenz attractor, with runtime, iterations, and residual accuracy analysis. | [Open in Colab](https://colab.research.google.com/drive/1T_vMBDgRK3LT0uemIuqRUNURV_uHWYuz?usp=sharing) |
## โก Quick Start (2 minutes)
### Installation
```bash
pip install quatica
```
### Basic Usage
```python
import numpy as np
import quaternion
from quatica.data_gen import create_test_matrix
from quatica.utils import quat_matmat, quat_frobenius_norm
from quatica.decomp.qsvd import qr_qua, classical_qsvd
from quatica.solver import NewtonSchulzPseudoinverse, QGMRESSolver
# Create quaternion matrices
A = create_test_matrix(4, 3)
B = create_test_matrix(3, 2)
# Basic operations
C = quat_matmat(A, B) # Matrix multiplication
norm_A = quat_frobenius_norm(A) # Frobenius norm
# Advanced: Pseudoinverse computation
ns_solver = NewtonSchulzPseudoinverse(gamma=0.5)
A_pinv, residuals, metrics = ns_solver.compute(A)
# Decompositions
Q, R = qr_qua(A) # QR decomposition
U, s, V = classical_qsvd(A, R=2) # SVD decomposition
# Linear system solving
A = create_test_matrix(3, 3)
x_true = create_test_matrix(3, 1)
b = quat_matmat(A, x_true)
qgmres_solver = QGMRESSolver(tol=1e-6, max_iter=100)
x, info = qgmres_solver.solve(A, b)
print("Solution x shape:", x.shape)
print("Convergence info:", info)
print("โ
QuatIca is working!")
```
### ๐ Getting Started
After installing QuatIca, you can start coding immediately. For comprehensive examples and tutorials, clone the [GitHub repository](https://github.com/vleplat/QuatIca) and use the interactive tutorial:
```bash
# Comprehensive tutorial with visualizations (recommended for beginners)
python run_analysis.py tutorial
# Core functionality demo (comprehensive overview)
python run_analysis.py demo
# Q-GMRES solver introduction
python run_analysis.py qgmres
```
## ๐ค What is QuatIca?
QuatIca brings modern numerical linear algebra to quaternion matrices and tensors:
- **Matrix Operations**: Multiplication, norms, basic operations optimized for quaternions
- **Factorizations**: QR, LU, SVD, eigendecomposition, Hessenberg, tridiagonal
- **Pseudoinverse**: NewtonโSchulz method with higher-order variants
- **Linear Solvers**: Q-GMRES with LU preconditioning
- **Applications**: Image processing, signal processing, computer vision
### Key Features
- **๐ Performance**: Optimized quaternion operations with NumPy backend
- **๐งช Well-tested**: Comprehensive test suite with >100 unit tests
- **๐ Documented**: Complete API documentation with examples
- **๐ฌ Research-ready**: Implements latest algorithms from quaternion linear algebra literature
- **๐ฏ Practical**: Real-world applications in image processing and signal analysis
## ๐ Core Functionality
### Matrix Operations
```python
from quatica.data_gen import create_test_matrix
from quatica.utils import quat_matmat, quat_frobenius_norm
# Basic operations
A = create_test_matrix(5, 4)
B = create_test_matrix(4, 3)
C = quat_matmat(A, B)
norm = quat_frobenius_norm(A)
```
### Matrix Decompositions
```python
from quatica.decomp.qsvd import qr_qua, classical_qsvd_full
from quatica.decomp.eigen import quaternion_eigendecomposition
from quatica.decomp import quaternion_lu
from quatica.utils import quat_hermitian
# QR decomposition
Q, R = qr_qua(A)
# SVD decomposition
U, s, V = classical_qsvd_full(A)
# Eigendecomposition (Hermitian matrices)
# Create a Hermitian matrix A = B^H @ B
A = create_test_matrix(4, 3)
A_H = quat_hermitian(A)
A_herm = quat_matmat(A_H, A)
eigenvals, eigenvecs = quaternion_eigendecomposition(A_herm)
# LU decomposition
L, U, P = quaternion_lu(A)
```
### Pseudoinverse and Linear Systems
```python
from quatica.solver import NewtonSchulzPseudoinverse, QGMRESSolver
# Newton-Schulz pseudoinverse
ns_solver = NewtonSchulzPseudoinverse(gamma=0.5)
A_pinv, residuals, metrics = ns_solver.compute(A)
# Q-GMRES solver
qgmres_solver = QGMRESSolver(tol=1e-6, max_iter=100, restart=20)
x, info = qgmres_solver.solve(A, b)
```
### Advanced Algorithms
```python
from quatica.decomp.qsvd import rand_qsvd
from quatica.utils import power_iteration_nonhermitian
from quatica.decomp.schur import quaternion_schur_unified
# Randomized SVD
U_rand, s_rand, V_rand = rand_qsvd(A, rank=10, n_iter=2)
# Power iteration for dominant eigenvector
eigenval, eigenvec = power_iteration_nonhermitian(A, max_iter=100)
# Schur decomposition
Q, T = quaternion_schur_unified(A, variant='rayleigh')
```
## ๐๏ธ Applications
QuatIca excels in various real-world applications. Explore comprehensive examples and demos:
### ๐ **Interactive Demos (Coming Soon!)**
- **๐ฌ Colab Demos for Applications** - Interactive notebooks for image processing, signal analysis, and more
- **๐ Live Examples** - Run applications directly in your browser without installation
### ๐ **GitHub Repository Examples**
Clone the [QuatIca repository](https://github.com/vleplat/QuatIca) for complete application examples:
**Image Processing Applications:**
- **Quaternion Image Deblurring** - Compare QSLST vs Newton-Schulz methods
- **Image Completion** - Matrix completion techniques for missing pixels
- **Deblurring Benchmarks** - Comprehensive performance analysis
**Signal Processing Applications:**
- **Lorenz Attractor Analysis** - Q-GMRES solver for dynamical systems
- **Quaternion Signal Processing** - Multi-channel signal analysis
- **Method Comparisons** - Performance benchmarks across algorithms
**Research & Analysis Tools:**
- **Pseudoinverse Analysis** - Single and multi-image studies
- **CIFAR-10 Analysis** - Large-scale image dataset processing
- **Synthetic Matrix Validation** - Controlled experiments and verification
### ๐ **Quick Access**
```bash
# Clone the repository
git clone https://github.com/vleplat/QuatIca.git
cd QuatIca
# See all available applications
python run_analysis.py
# Run specific examples
python run_analysis.py image_deblurring --size 64
python run_analysis.py lorenz_signal --num_points 500
```
## ๐ฌ Research Applications
QuatIca is designed for researchers working with:
- **Computer Vision**: Color image processing, stereo vision, 3D rotations
- **Signal Processing**: Quaternion-valued signals, spatial-temporal analysis
- **Robotics**: Orientation estimation, SLAM, sensor fusion
- **Graphics**: 3D rotations, animations, geometric transformations
- **Machine Learning**: Quaternion neural networks, geometric deep learning
## ๐ Performance
QuatIca is optimized for performance:
- **Efficient quaternion operations** using numpy-quaternion backend
- **Randomized algorithms** for large-scale problems (rand_qsvd, power iteration)
- **Optimized solvers** with preconditioning (Q-GMRES with LU)
- **Memory-efficient** implementations for large matrices
### Benchmarks
- **Q-SVD**: Up to 6x faster than full decomposition for low-rank matrices
- **Newton-Schulz**: Quadratic convergence for pseudoinverse computation
- **Q-GMRES**: Competitive with specialized quaternion solvers
## ๐ฆ Installation Requirements
- **Python**: โฅ3.11
- **NumPy**: โฅ2.3.2
- **numpy-quaternion**: โฅ2024.0.10
- **SciPy**: โฅ1.16.1
- **matplotlib**: โฅ3.10.3
- **scikit-learn**: โฅ1.5.0
- **seaborn**: โฅ0.13.0
## ๐งช Validation
QuatIca is thoroughly validated:
- **100+ unit tests** covering all major functions
- **Numerical accuracy** verified against theoretical results
- **Performance benchmarks** comparing different algorithms
- **Literature validation** against published research results
## ๐ Citation
If you use QuatIca in your research, please cite:
```bibtex
@software{quatica2025,
title = {QuatIca: Quaternion Linear Algebra Library},
author = {Leplat, Valentin and Pan, Junjun and Ahmadi-Asl, Salman and Beresnev, Dmitry and Ouerdane, Henni and Ng, Michael},
year = {2025},
version = {v0.1.7},
doi = {10.5281/zenodo.16910158},
url = {https://github.com/vleplat/QuatIca},
note = {Numerical linear algebra for quaternions}
}
```
## ๐ค Contributing
Contributions are welcome! Please see our [GitHub repository](https://github.com/vleplat/QuatIca) for:
- **Issues**: Bug reports and feature requests
- **Pull Requests**: Code contributions and improvements
- **Documentation**: Help improve docs and examples
- **Testing**: Add test cases and benchmarks
## ๐ License
CC0 1.0 Universal (Public Domain) - see [LICENSE](https://github.com/vleplat/QuatIca/blob/main/LICENSE.txt) for details.
## ๐ Links
- **๐ [Documentation](https://vleplat.github.io/QuatIca/)**
- **๐ [GitHub Repository](https://github.com/vleplat/QuatIca)**
- **๐ฌ [Colab Demo](https://colab.research.google.com/drive/1LQMnpGdSiWZsXjZQrMp1BmVT9Uzt_CKM?usp=sharing)**
- **๐ [PyPI Package](https://pypi.org/project/quatica/)**
---
**Made with โค๏ธ for the quaternion computing community**
Raw data
{
"_id": null,
"home_page": null,
"name": "quatica",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "quaternion, linear-algebra, matrix, decomposition, svd, pseudoinverse, gmres",
"author": "Valentin Leplat, Dmitry Beresnev",
"author_email": "Valentin Leplat <valentin.leplat@gmail.com>, Dmitry Beresnev <dmitry.beresnev@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/8f/d2/bba6c8419f02bab5f15fee0ede4ffdbedb116fd5a3d7143e386dab83e502/quatica-0.1.9.tar.gz",
"platform": null,
"description": "# QuatIca: Quaternion Linear Algebra Library\n\n<div align=\"center\">\n <img src=\"https://raw.githubusercontent.com/vleplat/QuatIca/main/Logo.png\" alt=\"QuatIca Logo\" width=\"250\">\n</div>\n\n**Numerical linear algebra for quaternions \u2014 fast, practical, and well\u2011tested.**\n\n## \ud83d\udcda Documentation\n\n**\ud83d\udcd6 [Complete Documentation](https://vleplat.github.io/QuatIca/)** - Comprehensive guides, API reference, and examples\n\n**Quick Links:**\n\n- **[Getting Started](https://vleplat.github.io/QuatIca/getting-started/)** - Setup and installation guide\n- **[Examples](https://vleplat.github.io/QuatIca/examples/)** - Copy-paste commands and code snippets\n- **[API Reference](https://vleplat.github.io/QuatIca/api/utils/)** - Complete function documentation\n- **[Troubleshooting](https://vleplat.github.io/QuatIca/troubleshooting/)** - Common issues and solutions\n\n## \ud83d\ude80 Try it Online - Colab Demos\n\n**No installation required! Try QuatIca directly in your browser:**\n\n### \ud83c\udfaf **Getting Started**\n| Demo | Description | Link |\n|------|-------------|------|\n| **\ud83d\udd2c Core Functionality Demo** | Test all major features including matrix operations, decompositions, and advanced algorithms without any setup. | [Open in Colab](https://colab.research.google.com/drive/1LQMnpGdSiWZsXjZQrMp1BmVT9Uzt_CKM?usp=sharing) |\n\n### \ud83d\uddbc\ufe0f **Image Processing Applications**\n| Demo | Description | Link |\n|------|-------------|------|\n| **Image Completion** | Fill missing pixels in real images using quaternion matrix completion algorithms. | [Open in Colab](https://colab.research.google.com/drive/1-LB6T6caPmayvtcWcIMNXQgiVI16HOQy?usp=sharing) |\n| **Image Deblurring (Technical)** | Reproducible benchmarks comparing FFT\u2013NS\u2013Q and QSLST\u2013FFT on Kodak images with \u03bb-optimization, PSNR/SSIM reporting, and LaTeX tables. | [Open in Colab](https://colab.research.google.com/drive/1cm8oW5PhPNtI1lfNDYMvNm9xgJLFgO7n?usp=sharing) |\n| **Image Deblurring (Visual)** | Same as above but with beautiful visual examples and side-by-side comparisons. | [Open in Colab](https://colab.research.google.com/drive/1vqWvo2ilFZcCnic5VDlf0z-KPzA8J17f?usp=sharing) |\n\n### \ud83d\udcca **Algorithm Benchmarks**\n| Demo | Description | Link |\n|------|-------------|------|\n| **Pseudoinverse Methods Comparison** | Comprehensive benchmark of NS (\u03b3=1), HON (3rd), RSP-Q (col), Hybrid RSP+NS, and CGNE\u2013Q with runtime and accuracy analysis. | [Open in Colab](https://colab.research.google.com/drive/1H2a4M64RS5GNLzv1FcP-kviTg3qvlez6?usp=sharing) |\n| **Q-GMRES Performance Analysis** | Statistically robust comparison of Q-GMRES with and without LU preconditioning across multiple matrix types, producing publication-ready dashboards. | [Open in Colab](https://colab.research.google.com/drive/1re00YLCsXZtiG9tIgB1UPvMcXN8VkO70?usp=sharing) |\n\n### \ud83d\udd2c **Research Applications**\n| Demo | Description | Link |\n|------|-------------|------|\n| **Lorenz Attractor Benchmark** | Q-GMRES vs Newton\u2013Schulz comparison on quaternion linear systems from the Lorenz attractor, with runtime, iterations, and residual accuracy analysis. | [Open in Colab](https://colab.research.google.com/drive/1T_vMBDgRK3LT0uemIuqRUNURV_uHWYuz?usp=sharing) |\n\n\n## \u26a1 Quick Start (2 minutes)\n\n### Installation\n\n```bash\npip install quatica\n```\n\n### Basic Usage\n\n```python\nimport numpy as np\nimport quaternion\nfrom quatica.data_gen import create_test_matrix\nfrom quatica.utils import quat_matmat, quat_frobenius_norm\nfrom quatica.decomp.qsvd import qr_qua, classical_qsvd\nfrom quatica.solver import NewtonSchulzPseudoinverse, QGMRESSolver\n\n# Create quaternion matrices\nA = create_test_matrix(4, 3)\nB = create_test_matrix(3, 2)\n\n# Basic operations\nC = quat_matmat(A, B) # Matrix multiplication\nnorm_A = quat_frobenius_norm(A) # Frobenius norm\n\n# Advanced: Pseudoinverse computation\nns_solver = NewtonSchulzPseudoinverse(gamma=0.5)\nA_pinv, residuals, metrics = ns_solver.compute(A)\n\n# Decompositions\nQ, R = qr_qua(A) # QR decomposition\nU, s, V = classical_qsvd(A, R=2) # SVD decomposition\n\n# Linear system solving\nA = create_test_matrix(3, 3)\nx_true = create_test_matrix(3, 1)\nb = quat_matmat(A, x_true)\nqgmres_solver = QGMRESSolver(tol=1e-6, max_iter=100)\nx, info = qgmres_solver.solve(A, b)\nprint(\"Solution x shape:\", x.shape)\nprint(\"Convergence info:\", info)\n\nprint(\"\u2705 QuatIca is working!\")\n```\n\n### \ud83c\udf93 Getting Started\n\nAfter installing QuatIca, you can start coding immediately. For comprehensive examples and tutorials, clone the [GitHub repository](https://github.com/vleplat/QuatIca) and use the interactive tutorial:\n\n```bash\n# Comprehensive tutorial with visualizations (recommended for beginners)\npython run_analysis.py tutorial\n\n# Core functionality demo (comprehensive overview)\npython run_analysis.py demo\n\n# Q-GMRES solver introduction\npython run_analysis.py qgmres\n```\n\n## \ud83e\udd14 What is QuatIca?\n\nQuatIca brings modern numerical linear algebra to quaternion matrices and tensors:\n\n- **Matrix Operations**: Multiplication, norms, basic operations optimized for quaternions\n- **Factorizations**: QR, LU, SVD, eigendecomposition, Hessenberg, tridiagonal\n- **Pseudoinverse**: Newton\u2013Schulz method with higher-order variants\n- **Linear Solvers**: Q-GMRES with LU preconditioning\n- **Applications**: Image processing, signal processing, computer vision\n\n### Key Features\n\n- **\ud83d\ude80 Performance**: Optimized quaternion operations with NumPy backend\n- **\ud83e\uddea Well-tested**: Comprehensive test suite with >100 unit tests\n- **\ud83d\udcda Documented**: Complete API documentation with examples\n- **\ud83d\udd2c Research-ready**: Implements latest algorithms from quaternion linear algebra literature\n- **\ud83c\udfaf Practical**: Real-world applications in image processing and signal analysis\n\n## \ud83d\udcd6 Core Functionality\n\n### Matrix Operations\n```python\nfrom quatica.data_gen import create_test_matrix\nfrom quatica.utils import quat_matmat, quat_frobenius_norm\n\n# Basic operations\nA = create_test_matrix(5, 4)\nB = create_test_matrix(4, 3)\nC = quat_matmat(A, B)\nnorm = quat_frobenius_norm(A)\n```\n\n### Matrix Decompositions\n```python\nfrom quatica.decomp.qsvd import qr_qua, classical_qsvd_full\nfrom quatica.decomp.eigen import quaternion_eigendecomposition\nfrom quatica.decomp import quaternion_lu\nfrom quatica.utils import quat_hermitian\n\n# QR decomposition\nQ, R = qr_qua(A)\n\n# SVD decomposition\nU, s, V = classical_qsvd_full(A)\n\n# Eigendecomposition (Hermitian matrices)\n# Create a Hermitian matrix A = B^H @ B\nA = create_test_matrix(4, 3)\nA_H = quat_hermitian(A)\nA_herm = quat_matmat(A_H, A)\neigenvals, eigenvecs = quaternion_eigendecomposition(A_herm)\n\n# LU decomposition\nL, U, P = quaternion_lu(A)\n```\n\n### Pseudoinverse and Linear Systems\n```python\nfrom quatica.solver import NewtonSchulzPseudoinverse, QGMRESSolver\n\n# Newton-Schulz pseudoinverse\nns_solver = NewtonSchulzPseudoinverse(gamma=0.5)\nA_pinv, residuals, metrics = ns_solver.compute(A)\n\n# Q-GMRES solver\nqgmres_solver = QGMRESSolver(tol=1e-6, max_iter=100, restart=20)\nx, info = qgmres_solver.solve(A, b)\n```\n\n### Advanced Algorithms\n```python\nfrom quatica.decomp.qsvd import rand_qsvd\nfrom quatica.utils import power_iteration_nonhermitian\nfrom quatica.decomp.schur import quaternion_schur_unified\n\n# Randomized SVD\nU_rand, s_rand, V_rand = rand_qsvd(A, rank=10, n_iter=2)\n\n# Power iteration for dominant eigenvector\neigenval, eigenvec = power_iteration_nonhermitian(A, max_iter=100)\n\n# Schur decomposition\nQ, T = quaternion_schur_unified(A, variant='rayleigh')\n```\n\n## \ud83c\udfd7\ufe0f Applications\n\nQuatIca excels in various real-world applications. Explore comprehensive examples and demos:\n\n### \ud83d\ude80 **Interactive Demos (Coming Soon!)**\n- **\ud83d\udd2c Colab Demos for Applications** - Interactive notebooks for image processing, signal analysis, and more\n- **\ud83d\udcca Live Examples** - Run applications directly in your browser without installation\n\n### \ud83d\udcc2 **GitHub Repository Examples**\n\nClone the [QuatIca repository](https://github.com/vleplat/QuatIca) for complete application examples:\n\n**Image Processing Applications:**\n- **Quaternion Image Deblurring** - Compare QSLST vs Newton-Schulz methods\n- **Image Completion** - Matrix completion techniques for missing pixels \n- **Deblurring Benchmarks** - Comprehensive performance analysis\n\n**Signal Processing Applications:**\n- **Lorenz Attractor Analysis** - Q-GMRES solver for dynamical systems\n- **Quaternion Signal Processing** - Multi-channel signal analysis\n- **Method Comparisons** - Performance benchmarks across algorithms\n\n**Research & Analysis Tools:**\n- **Pseudoinverse Analysis** - Single and multi-image studies\n- **CIFAR-10 Analysis** - Large-scale image dataset processing\n- **Synthetic Matrix Validation** - Controlled experiments and verification\n\n### \ud83d\udccb **Quick Access**\n\n```bash\n# Clone the repository\ngit clone https://github.com/vleplat/QuatIca.git\ncd QuatIca\n\n# See all available applications\npython run_analysis.py\n\n# Run specific examples\npython run_analysis.py image_deblurring --size 64\npython run_analysis.py lorenz_signal --num_points 500\n```\n\n## \ud83d\udd2c Research Applications\n\nQuatIca is designed for researchers working with:\n\n- **Computer Vision**: Color image processing, stereo vision, 3D rotations\n- **Signal Processing**: Quaternion-valued signals, spatial-temporal analysis\n- **Robotics**: Orientation estimation, SLAM, sensor fusion\n- **Graphics**: 3D rotations, animations, geometric transformations\n- **Machine Learning**: Quaternion neural networks, geometric deep learning\n\n## \ud83c\udfc6 Performance\n\nQuatIca is optimized for performance:\n\n- **Efficient quaternion operations** using numpy-quaternion backend\n- **Randomized algorithms** for large-scale problems (rand_qsvd, power iteration)\n- **Optimized solvers** with preconditioning (Q-GMRES with LU)\n- **Memory-efficient** implementations for large matrices\n\n### Benchmarks\n\n- **Q-SVD**: Up to 6x faster than full decomposition for low-rank matrices\n- **Newton-Schulz**: Quadratic convergence for pseudoinverse computation\n- **Q-GMRES**: Competitive with specialized quaternion solvers\n\n## \ud83d\udce6 Installation Requirements\n\n- **Python**: \u22653.11\n- **NumPy**: \u22652.3.2\n- **numpy-quaternion**: \u22652024.0.10\n- **SciPy**: \u22651.16.1\n- **matplotlib**: \u22653.10.3\n- **scikit-learn**: \u22651.5.0\n- **seaborn**: \u22650.13.0\n\n## \ud83e\uddea Validation\n\nQuatIca is thoroughly validated:\n\n- **100+ unit tests** covering all major functions\n- **Numerical accuracy** verified against theoretical results\n- **Performance benchmarks** comparing different algorithms\n- **Literature validation** against published research results\n\n## \ud83d\udcc4 Citation\n\nIf you use QuatIca in your research, please cite:\n\n```bibtex\n@software{quatica2025,\n title = {QuatIca: Quaternion Linear Algebra Library},\n author = {Leplat, Valentin and Pan, Junjun and Ahmadi-Asl, Salman and Beresnev, Dmitry and Ouerdane, Henni and Ng, Michael},\n year = {2025},\n version = {v0.1.7},\n doi = {10.5281/zenodo.16910158},\n url = {https://github.com/vleplat/QuatIca},\n note = {Numerical linear algebra for quaternions}\n}\n```\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please see our [GitHub repository](https://github.com/vleplat/QuatIca) for:\n\n- **Issues**: Bug reports and feature requests\n- **Pull Requests**: Code contributions and improvements\n- **Documentation**: Help improve docs and examples\n- **Testing**: Add test cases and benchmarks\n\n## \ud83d\udcdc License\n\nCC0 1.0 Universal (Public Domain) - see [LICENSE](https://github.com/vleplat/QuatIca/blob/main/LICENSE.txt) for details.\n\n## \ud83d\udd17 Links\n\n- **\ud83d\udcd6 [Documentation](https://vleplat.github.io/QuatIca/)**\n- **\ud83d\udc19 [GitHub Repository](https://github.com/vleplat/QuatIca)**\n- **\ud83d\udd2c [Colab Demo](https://colab.research.google.com/drive/1LQMnpGdSiWZsXjZQrMp1BmVT9Uzt_CKM?usp=sharing)**\n- **\ud83d\udcca [PyPI Package](https://pypi.org/project/quatica/)**\n\n---\n\n**Made with \u2764\ufe0f for the quaternion computing community**\n",
"bugtrack_url": null,
"license": "CC0-1.0",
"summary": "Numerical linear algebra for quaternions \u2014 fast, practical, and well\u2011tested",
"version": "0.1.9",
"project_urls": {
"Bug Tracker": "https://github.com/vleplat/QuatIca/issues",
"Colab Demo": "https://colab.research.google.com/drive/1LQMnpGdSiWZsXjZQrMp1BmVT9Uzt_CKM?usp=sharing",
"DOI": "https://doi.org/10.5281/zenodo.16910158",
"Documentation": "https://vleplat.github.io/QuatIca/",
"Homepage": "https://github.com/vleplat/QuatIca",
"Repository": "https://github.com/vleplat/QuatIca"
},
"split_keywords": [
"quaternion",
" linear-algebra",
" matrix",
" decomposition",
" svd",
" pseudoinverse",
" gmres"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4935cebe28d23740a0425aadcc2bc78e7ee53f395dc8c3c9927fcb08856cbcbd",
"md5": "ef8d9d362b464a79132bc918aec2825c",
"sha256": "d38ce3143c795f3097d5925ae3204baf9f617af8dd7e1253aef5e3a10c66fd7e"
},
"downloads": -1,
"filename": "quatica-0.1.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ef8d9d362b464a79132bc918aec2825c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 77060,
"upload_time": "2025-08-20T10:20:33",
"upload_time_iso_8601": "2025-08-20T10:20:33.484519Z",
"url": "https://files.pythonhosted.org/packages/49/35/cebe28d23740a0425aadcc2bc78e7ee53f395dc8c3c9927fcb08856cbcbd/quatica-0.1.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8fd2bba6c8419f02bab5f15fee0ede4ffdbedb116fd5a3d7143e386dab83e502",
"md5": "8a549703f21c65c128c2daa1b94c11b2",
"sha256": "55a1c58604d88d549645106f92f227c57cf74b4d39e34957664ac754dbf5366d"
},
"downloads": -1,
"filename": "quatica-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "8a549703f21c65c128c2daa1b94c11b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 69704,
"upload_time": "2025-08-20T10:20:34",
"upload_time_iso_8601": "2025-08-20T10:20:34.627486Z",
"url": "https://files.pythonhosted.org/packages/8f/d2/bba6c8419f02bab5f15fee0ede4ffdbedb116fd5a3d7143e386dab83e502/quatica-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-20 10:20:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vleplat",
"github_project": "QuatIca",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "quatica"
}