jaxvacua.flux_utils.dedup_key

Contents

jaxvacua.flux_utils.dedup_key#

dedup_key(moduli, tau, fluxes, n_digits=6)#

Build a hashable dedup key from a single (moduli, tau, fluxes) triple.

Parameters:
  • moduli (Any) – Complex structure moduli. Real and imaginary parts are each rounded to n_digits decimal places.

  • tau (Any) – Axio-dilaton. Real and imaginary parts are each rounded to n_digits decimal places.

  • fluxes (Any) – Flux vector. Real part is rounded to int32; imaginary part is ignored.

  • n_digits (int) – Decimal precision for rounding continuous components. Defaults to 6.

Returns:
  • tuple – 4-tuple (flux_bytes, moduli_re_bytes, moduli_im_bytes, tau_tuple),

  • hashable for use in a ``set`` / ``dict``.

Return type:

Tuple[bytes, bytes, bytes, Tuple[float, float]]

Example:

seen = set()
for vac in candidate_vacua:
    k = dedup_key(vac.moduli, vac.tau, vac.fluxes)
    if k in seen:
        continue
    seen.add(k)
    ...