jax_privacy.matrix_factorization.buffered_toeplitz

Functions for working with Buffered Linear Toeplitz (BLT) strategy matrices.

BufferedToeplitz is the main BLT class, with several helper functions for error and sensitity calculation, as well as optimization.

Functions

blt_pair_from_theta_pair(theta, theta_hat)

Computes BLTs (C, C_inv) from theta and theta_hat.

check_float64_dtype(blt)

geometric_sum(a, r[, num])

Sum a + a*r + a*r**2 + .

get_init_blt([num_buffers, init_blt])

Returns an initial BufferedToeplitz for initializing optimization.

iteration_error(inv_blt, i)

Computes the error on iteration i which is also the max error.

limit_max_error(inv_blt)

Computes limit_{n -> jnp.inf} (1/n)*max_error(blt, n).

limit_max_loss(blt, *args, **kwargs)

max_error(inv_blt, n)

Returns the max squared error for any iteration 0, ..., n-1.

max_loss(blt, *args, **kwargs)

min_buf_decay_gap(buf_decay)

Returns max_{i,j i!=j} abs(theta[i] - theta[j]).

require_buf_decay_less_eq_one(blt_fn)

Return inf if blt, the first arg to blt_fn, has buf_decay > 1.

require_output_scale_gt_zero(blt_fn)

Return inf if blt, the first arg to blt_fn, has output_scale <= 0.

robust_max_error_Gamma_j(omega, theta, n)

Robustly computes _max_error_Gamma_j.

robust_max_error_Gamma_jk(omega1, theta1, ...)

Robustly computes _max_error_Gamma_jk.

sensitivity_squared(blt, *args, **kwargs)

Classes

BufferedToeplitz(buf_decay, output_scale)

A lower-triangular Toeplitz C parameterized as a BLT.

LossFn(error_for_inv, sensitivity_squared, ...)

Encapsulates the loss to be optimized for a specific setting.

Parameterization(params_from_blt, ...)

A parameterization of a BufferedToeplitz for optimization.

StreamingMatrixBuilder(*, buf_decay, ...)

Builder to convert a BLT to a StreamingMatrix.