qdldl
QDLDL, a free LDL factorization routine.
Decision gist · record as of 2026-08-14
Yes, if you need to solve linear systems with quasi-definite sparse matrices and want a specialized, actively-maintained solver. The medium install friction is typical for compiled numerical packages. Apache 2.0 licensing poses no restrictions. No known security vulnerabilities. Best suited for optimization and numerical computing workflows; not needed for general-purpose linear algebra.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Input matrix A must be square and quasi-definite; scipy sparse CSC format is required (or CSR for updates).
- Medium install friction due to compiled wheels for multiple Python versions and platforms (cp310 through cp313, macOS, Linux, Windows).
- Actively maintained with a recent release (176 days ago) and ongoing repository activity.
License · maintenance · safety
Apache 2.0 (permissive) — Licensed under Apache 2.0, a permissive open-source license that allows commercial and private use with minimal restrictions.
last release 2026-02-19 (176 days) · last repo commit 2026-04-06 · 18 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,962,872 downloads/mo, #3,407 on PyPI
Alternatives
Verify before relying
pip install qdldl
import qdldl
import scipy.sparse
A = scipy.sparse.csc_matrix([[2, 1], [1, 2]])
F = qdldl.Solver(A)
x = F.solve(b)- Performance characteristics and scalability limits for large sparse systems are not documented in the fact sheet.
- Numerical stability guarantees or error bounds for the factorization are not specified.
- Whether the package is actively used in production systems or primarily academic/research contexts.
What it is and what it does
QDLDL is a Python binding to a specialized linear algebra routine that factors quasi-definite matrices using LDL decomposition. It takes sparse matrices in scipy's CSC format and computes a factorization that can be reused to solve multiple linear systems efficiently. The package is designed for problems where the matrix structure is sparse and quasi-definite (a generalization of symmetric indefinite matrices), which arise in optimization, control theory, and other numerical applications.
The solver provides two main operations: initial factorization via the Solver constructor, and subsequent solves via the solve() method. It also supports updating the factorization when the matrix values change but the sparsity pattern remains fixed, which is useful for iterative algorithms. The implementation handles format conversions internally (e.g., converting to upper triangular form) and depends on numpy and scipy for matrix representation and numerical operations.
Use it for
- Solve multiple linear systems with the same quasi-definite matrix by factorizing once and reusing the factorization.
- Implement interior-point optimization algorithms that require repeated solves with slowly-changing sparse matrices.
- Perform LDL decomposition of indefinite symmetric matrices in control theory or signal processing applications.
- Update factorizations in iterative solvers without recomputing from scratch when only matrix values change.
- Integrate specialized sparse linear algebra into larger numerical pipelines that use scipy.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to solve linear systems with quasi-definite sparse matrices and want a specialized, actively-maintained solver.
The medium install friction is typical for compiled numerical packages. Apache 2.0 licensing poses no restrictions. No known security vulnerabilities. Best suited for optimization and numerical computing workflows; not needed for general-purpose linear algebra.
Install
qdldl on PyPI
Before you install
Medium install friction due to compiled wheels for multiple Python versions and platforms (cp310 through cp313, macOS, Linux, Windows). Actively maintained with a recent release (176 days ago) and ongoing repository activity.
Input matrix A must be square and quasi-definite; scipy sparse CSC format is required (or CSR for updates).
License in practice
Licensed under Apache 2.0, a permissive open-source license that allows commercial and private use with minimal restrictions.
Quickstart
pip install qdldl
import qdldl
import scipy.sparse
A = scipy.sparse.csc_matrix([[2, 1], [1, 2]])
F = qdldl.Solver(A)
x = F.solve(b)
Verify before relying
- Performance characteristics and scalability limits for large sparse systems are not documented in the fact sheet.
- Numerical stability guarantees or error bounds for the factorization are not specified.
- Whether the package is actively used in production systems or primarily academic/research contexts.
Package facts
| License | Apache 2.0 permissive |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 2 packagesnumpyscipy |
| Maintenance | Actively maintained 176 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,962,872 / month, #3,407 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: qdldl-0.1.9.post1-cp310-cp310-macosx_10_9_x86_64.whl; qdldl-0.1.9.post1-cp310-cp310-macosx_11_0_arm64.whl; qdldl-0.1.9.post1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; qdldl-0.1.9.post1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; qdldl-0.1.9.post1-cp310-cp310-win_amd64.whl; qdldl-0.1.9.post1-cp311-cp311-macosx_10_9_x86_64.whl; qdldl-0.1.9.post1-cp311-cp311-macosx_11_0_arm64.whl; qdldl-0.1.9.post1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; qdldl-0.1.9.post1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; qdldl-0.1.9.post1-cp311-cp311-win_amd64.whl; qdldl-0.1.9.post1-cp311-cp311-win_arm64.whl; qdldl-0.1.9.post1-cp312-cp312-macosx_10_13_x86_64.whl; qdldl-0.1.9.post1-cp312-cp312-macosx_11_0_arm64.whl; qdldl-0.1.9.post1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; qdldl-0.1.9.post1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; qdldl-0.1.9.post1-cp312-cp312-win_amd64.whl; qdldl-0.1.9.post1-cp312-cp312-win_arm64.whl; qdldl-0.1.9.post1-cp313-cp313-macosx_10_13_x86_64.whl; qdldl-0.1.9.post1-cp313-cp313-macosx_11_0_arm64.whl; qdldl-0.1.9.post1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “LDL factorization”
- qdldlProvides a Python interface to QDLDL, a free LDL factorization…
- daqpDAQP is a dual active-set solver for convex quadratic programs,…
- scikit-surpriseScikit-surprise builds and evaluates recommender systems that predict…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also spglm · klujax · nvidia-cusparselt-cu13 · onemkl-sycl-sparse · daqp · nvidia-cusolver · pyamg · qpsolvers · implicit · lap