QuatIca Documentation
Welcome to QuatIca - a comprehensive quaternion linear algebra library for Python. This documentation provides everything you need to get started with quaternion matrix operations, decompositions, and real-world applications.
๐ Quick Navigation
New to QuatIca?
- Getting Started - Complete setup guide from installation to first run
- Examples - Copy-paste commands and code snippets
- Tutorial - Interactive learning with
python run_analysis.py tutorial
Applications
- Image Deblurring - QSLST vs Newton-Schulz methods
- Image Completion - Advanced restoration using quaternion matrices
- Lorenz Attractor Filtering - Quaternion signal processing with chaotic systems
- Matrix Analysis - Pseudoinverse and decomposition benchmarks
Reference
- API Documentation - Complete function reference
- Troubleshooting - Common issues and solutions
โก What is QuatIca?
QuatIca brings modern numerical linear algebra to quaternion matrices and tensors:
- Matrix Operations: Multiplication, norms, Hermitian conjugate, sparse support
- Decompositions: QR, SVD, LU, eigendecomposition, Schur, Hessenberg
- Solvers: Newton-Schulz pseudoinverse, Q-GMRES with LU preconditioning
- Applications: Image deblurring, image completion, quaternion signal processing
Key Features
- โก Fast: numpyโฅ2.3.2 provides 10-15x speedup for quaternion operations
- ๐งช Tested: 194 passing tests with comprehensive validation
- ๐ฏ Practical: Real-world applications with saved outputs
- ๐ Visual: Rich plotting and analysis tools
๐ฏ Quick Examples
2-Minute Setup
# Create environment and install
python3 -m venv quatica && source quatica/bin/activate
pip install -r requirements.txt
# Run interactive tutorial
python run_analysis.py tutorial
Common Tasks
# Image processing
python run_analysis.py image_deblurring
# Signal processing
python run_analysis.py lorenz_signal
# Linear system solving
python run_analysis.py qgmres
# Performance benchmarking
python run_analysis.py lorenz_benchmark
Basic Code
import numpy as np
import quaternion
from quatica.utils import quat_matmat, quat_frobenius_norm
from quatica.solver import NewtonSchulzPseudoinverse
# Create quaternion matrices
A = quaternion.as_quat_array(np.random.randn(4, 4, 4))
B = quaternion.as_quat_array(np.random.randn(4, 4, 4))
# Matrix operations
C = quat_matmat(A, B)
norm_A = quat_frobenius_norm(A)
# Pseudoinverse computation
solver = NewtonSchulzPseudoinverse()
A_pinv, residuals, _ = solver.compute(A)
๐ฌ Research Applications
QuatIca supports cutting-edge research in:
- Quaternion Signal Processing: 3D/4D signal analysis
- Image Restoration: Deblurring, completion, inpainting
- Matrix Theory: Quaternion decompositions and eigenanalysis
- Numerical Methods: Iterative solvers and preconditioning
Recent Algorithms
- QSLST: Quaternion Special Least Squares with Tikhonov regularization
- Q-GMRES: Generalized Minimal Residual method for quaternion systems
- Randomized Q-SVD: Fast approximation for large quaternion matrices
- Higher-Order Newton-Schulz: Cubic convergence for pseudoinverse computation
๐ Performance Highlights
Operation | Matrix Size | Time | Accuracy |
---|---|---|---|
Q-SVD | 100ร100 | ~0.5s | Machine precision |
Pseudoinverse | 200ร200 | ~0.4s | Residual < 10โปยนโต |
Q-GMRES | 500ร500 | ~2.0s | Converges in <50 iterations |
Image Deblurring | 64ร64 | ~0.1s | >35 dB PSNR |
๐ Learning Path
Beginners
- Getting Started - Setup and verification
- Tutorial:
python run_analysis.py tutorial
- Interactive learning - Examples - Copy-paste code snippets
Intermediate Users
- API Reference - Function documentation
- Applications: Try image deblurring, completion, and Lorenz attractor filtering
- Custom matrices: Learn quaternion matrix creation patterns
Advanced Users
- Algorithm comparison: Benchmark different methods
- Performance optimization: Large-scale problems
- Research applications: Extend with new algorithms
๐ External Resources
- GitHub Repository: https://github.com/vleplat/QuatIca
- Issue Tracker: https://github.com/vleplat/QuatIca/issues
- QTFM (MATLAB): Original inspiration for quaternion linear algebra
- Research Papers: References included in function documentation
๐ง Support
- Documentation: Complete guides and API reference on this site
- Community: GitHub Issues for questions and bug reports
- Contact: v dot leplat [at] innopolis dot ru
- License: CC0 1.0 Universal (public domain)
Ready to start? Head to Getting Started for installation, or dive into Examples for immediate copy-paste commands!