Compute a stable randomized Nyström PSD low-rank eigendecomposition from a dense PSD matrix or matrix-vector product interface.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill randomized_nystrom_factorization --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Randomized Nystrom Factorization?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-randomized-nystrom-factorization)More formats (shields.io, HTML) on the badges page.
---
name: randomized_nystrom_factorization
description: Compute a stable randomized Nyström PSD low-rank eigendecomposition from a dense PSD matrix or matrix-vector product interface.
---
# Randomized Nyström Factorization
Use this skill when you need the paper's Algorithm 2.1 component: a reproducible low-rank PSD approximation `A_nys = U diag(lambda_hat) U.T` for a symmetric positive-semidefinite matrix. Do not use it as a full linear solver; downstream solver skills own preconditioning and PCG.
## Inputs
- PSD matrix `A` as a dense JSON/NumPy array, or a Python callable that applies `A` to a matrix.
- Dimension `n` and sketch rank `ell`, with `1 <= ell <= n`.
- Random seed for reproducibility.
## Outputs
- `U`: orthonormal basis for the Nyström range.
- `lambda_hat`: nonnegative approximate eigenvalues.
- Diagnostics: sketch rank, returned rank, stability shift, matvec count, and Cholesky retry count.
## Workflow
1. Validate matrix dimensions and rank.
2. Draw a standard Gaussian sketch and orthonormalize it with thin QR.
3. Form `Y = A @ Omega`; this is the only matrix interaction required by the algorithm.
4. Add a tiny stability shift `nu * Omega` before Cholesky.
5. Factor `Omega.T @ Y_shift`, solve by the Cholesky factor, and take a thin SVD.
6. Return `U` and squared singular values minus the stability shift, clipped at zero for roundoff.
## Validation
Run:
```bash
python scripts/nystrom.py --self-test
python tests/test_nystrom.py
```
The tests verify shapes, orthonormality, nonnegative eigenvalues, deterministic seeding, and improved approximation with larger rank.
## Limitations
The routine assumes PSD-compatible input. It is intentionally small and dense-friendly for recovery experiments; large production runs should provide an efficient matvec closure and avoid forming dense matrices.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!