jax_privacy.matrix_factorization.buffered_toeplitz.blt_pair_from_theta_pair
- jax_privacy.matrix_factorization.buffered_toeplitz.blt_pair_from_theta_pair(theta, theta_hat)[source]
Computes BLTs (C, C_inv) from theta and theta_hat.
This implements Lemma 5.2 of https://arxiv.org/abs/2404.16706 (See also Algorithm 5 of https://arxiv.org/abs/2408.08868). The simplified computation used in the implementation here appears as Theorem 2 of https://arxiv.org/abs/2504.21413.
This function uses quantities like 1 /(1/theta[i] - 1/theta[j]), and so can be numerically unstable if abs(theta[i] - theta[j]) is too small; hence, by default the Parameterization based on blt.inverse() should be used instead.
- Parameters:
theta (
Array) – Array of thetas for the denominator q of r(x) = p(x; theta_hat) / q(x; theta).theta_hat (
Array) – Array of thetas for the numerator of r(x).
- Return type:
tuple[BufferedToeplitz,BufferedToeplitz]- Returns:
A tuple of BLTs (C, C_inv) where C.buf_decay = theta and C_inv.buf_decay = theta_hat, with the output_scale (omega) parameters for each computed to make these inverses.