lineax  by patrick-kidger

JAX library for linear solves and least squares

created 2 years ago
461 stars

Top 66.7% on sourcepulse

GitHubView on GitHub
Project Summary

Lineax is a JAX library designed to solve linear systems ($Ax=b$) and linear least squares problems, even for ill-posed or rectangular matrices. It targets JAX and Equinox users, offering PyTree-valued matrices, general linear operators, and numerically stable gradients for advanced scientific computing and machine learning tasks.

How It Works

Lineax leverages JAX's capabilities for automatic differentiation, parallelization, and hardware acceleration (GPU/TPU). It supports general linear operators, allowing users to represent matrices implicitly through functions like Jacobians or transposes, avoiding explicit materialization. This approach enhances compilation and runtime efficiency, particularly for structured or large-scale problems, while providing robust support for real and complex-valued inputs.

Quick Start & Requirements

Highlighted Details

  • Solves $Ax=b$ and linear least squares problems.
  • Supports PyTree-valued matrices and vectors.
  • Integrates with JAX for autodiff, autoparallelism, and hardware acceleration.
  • Offers efficient QR solvers and stable gradients for least squares.
  • Includes support for structured matrices and complex numbers.

Maintenance & Community

The project is primarily developed by Patrick Kidger, with contributions from Jason Rader and Terry Lyons. It is part of a broader JAX ecosystem, with related libraries like Equinox, Diffrax, and Optimistix.

Licensing & Compatibility

The library is available under an unspecified license. Compatibility for commercial use or closed-source linking would require clarification of the license terms.

Limitations & Caveats

The specific license is not detailed in the README, which may impact commercial adoption. The library is presented as a tool for JAX and Equinox users, implying a dependency on these ecosystems.

Health Check
Last commit

1 week ago

Responsiveness

1 day

Pull Requests (30d)
2
Issues (30d)
2
Star History
26 stars in the last 90 days

Explore Similar Projects

Starred by Patrick von Platen Patrick von Platen(Core Contributor to Hugging Face Transformers and Diffusers), Phil Wang Phil Wang(Prolific Research Paper Implementer), and
1 more.

diffrax by patrick-kidger

0.3%
2k
JAX library for numerical differential equation solvers
created 4 years ago
updated 3 days ago
Feedback? Help us improve.