"""Edit globals here; no CLI parser is used."""

from datetime import datetime
from pathlib import Path

SEED = 114514
KAPPA = 1e-3
NUM_SAMPLES = 10**6  # requested default
LIPSCHITZ_PAIRS = 12_000
LIPSCHITZ_RESERVOIR = 4_096
MAJORANA_STAR_STATES = 16  # only for visualization
MAX_STAR_DEGREE = 63  # avoid unstable huge root-finding plots

BACKEND = "auto"  # auto | jax | numpy
JAX_PLATFORM = "gpu"  # "", "cpu", "gpu"; set before importing JAX
RESULTS_DIR = (
    Path.joinpath(Path.cwd(), Path("./results")) / f"exp-{datetime.now():%Y%m%d-%H%M%S}"
)

# Chosen so the three families have comparable intrinsic dimensions:
# sphere S^(m-1), CP^(d_A d_B - 1), and Sym^N(C^2) ~ CP^N.
# SPHERE_DIMS = [1<<i for i in range(4, 12)]
SPHERE_DIMS = []
CP_DIMS = [(1<<i, 1<<i) for i in range(9, 12)]
MAJORANA_N = [(1<<i)-1 for i in range(4, 12)]

# Batch sizes are the main speed knob; reduce CP batches first if memory is tight.
BATCH = {"sphere": 32_768, "cp": 128, "majorana": 65_536}
