Skip to content
Back to skills

Randomized Nystrom Factorization

ASecurity

Compute a stable randomized Nyström PSD low-rank eigendecomposition from a dense PSD matrix or matrix-vector product interface.

  • 247 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 9, 2026
testingpythongobash

Works with

  • cli

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill randomized_nystrom_factorization --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Randomized Nystrom Factorization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-randomized-nystrom-factorization/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-randomized-nystrom-factorization)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…