lrux documentation#

Fast low-rank update (LRU) of matrix determinants and pfaffians in JAX

Installation#

Requires Python 3.8+ and JAX 0.4.4+

pip install lrux

Low-rank update of determinants#

det_lru(Ainv, u, v[, return_update])

Low-rank update of determinant \(\det(A_1) = \det(A_0 + vu^T)\).

init_det_carrier(A, max_delay[, max_rank])

Prepare the data and space for det_lru_delayed.

merge_det_delays(carrier)

Merge the delayed updates in the carrier.

det_lru_delayed(carrier, u, v[, ...])

Delayed low-rank update of determinant.

Low-rank update of pfaffians#

pf_lru(Ainv, u[, return_update])

Low-rank update of pfaffian \(\mathrm{pf}(A_1) = \mathrm{pf}(A_0 - u J u^T)\).

init_pf_carrier(A, max_delay[, max_rank])

Prepare the data and space for pf_lru_delayed.

merge_pf_delays(carrier)

Merge the delayed updates in the carrier.

pf_lru_delayed(carrier, u[, return_update, ...])

Delayed low-rank update of pfaffian.

Pfaffian functions#

skew_eye(n[, dtype])

The skew-symmetric identity matrix \(J\).

pf(A, *[, method])

Compute the pfaffian of an array.

slogpf(A, *[, method])

Compute the sign and (natural) logarithm of the pfaffian of an array.