"""WICHER (Whirlwind) steering method constants."""
from wisent.core.utils.config_tools.constants.for_experiments.by_method.simple import *  # noqa: F401,F403

# --- WICHER code-enforced bounds ---
SS_WICHER_CONCEPT_DIMS = (0, 8, 16, 32, 64)
SS_WICHER_VAR_THRESH_LOW = 0.0
SS_WICHER_VAR_THRESH_HIGH = 1.0
SS_WICHER_NUM_STEPS_MIN = 1
SS_WICHER_NUM_STEPS_MAX = 20
SS_WICHER_ETA_LOW = -1.0
SS_WICHER_ETA_HIGH = 1.0
SS_WICHER_BETA_LOW = 0.0
SS_WICHER_BETA_HIGH = 1.0
SS_WICHER_ALPHA_DECAY_LOW = 0.0
SS_WICHER_ALPHA_DECAY_HIGH = 1.0

# --- WICHER concept subspace bounds ---
WICHER_CONCEPT_DIM_MIN = 1
WICHER_CONCEPT_DIM_MAX = 256

# --- WICHER solver choices ---
WICHER_SOLVER_BROYDEN = "broyden"
WICHER_SOLVER_NEWTON = "newton"
WICHER_SOLVER_HALLEY = "halley"
WICHER_SOLVER_CHOICES = (WICHER_SOLVER_BROYDEN, WICHER_SOLVER_NEWTON, WICHER_SOLVER_HALLEY)
WICHER_DEFAULT_SOLVER = WICHER_SOLVER_BROYDEN

# --- Halley correction factors ---
HALLEY_CORRECTION_HALF = 0.5
HALLEY_HESSIAN_DOT_FACTOR = 2
HALLEY_HESSIAN_NORM_FACTOR = 3

