Skip to content

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

Reference

โšก 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

  1. Getting Started - Setup and verification
  2. Tutorial: python run_analysis.py tutorial - Interactive learning
  3. Examples - Copy-paste code snippets

Intermediate Users

  1. API Reference - Function documentation
  2. Applications: Try image deblurring, completion, and Lorenz attractor filtering
  3. Custom matrices: Learn quaternion matrix creation patterns

Advanced Users

  1. Algorithm comparison: Benchmark different methods
  2. Performance optimization: Large-scale problems
  3. Research applications: Extend with new algorithms

๐Ÿ”— External Resources

๐Ÿ“ง 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!