"""Search space constants for steering method hyperparameters.

Only constants encoding actual code-enforced finite ranges belong here.
Parameters with no code-enforced bounds use uninformative lognormal/normal
priors (UNINFORMATIVE_MU, UNINFORMATIVE_SIGMA) and need no constants.
"""
# --- Shared ---
SS_LAYER_MIN = 1

# --- MLP code-enforced bounds ---
SS_MLP_NUM_LAYERS_MIN = 1
SS_MLP_NUM_LAYERS_MAX = 5
SS_MLP_DROPOUT_LOW = 0.0
SS_MLP_DROPOUT_HIGH = 1.0
SS_MLP_INPUT_DIVISOR_MIN = 1
SS_MLP_INPUT_DIVISOR_MAX = 8
SS_MLP_GATING_DIVISOR_MIN = 1
SS_MLP_GATING_DIVISOR_MAX = 8
SS_MLP_PATIENCE_MIN = 3
SS_MLP_PATIENCE_MAX = 15

# --- TECZA code-enforced bounds ---
SS_TECZA_MIN_COS_LOW = -1.0
SS_TECZA_MIN_COS_HIGH = 1.0
SS_TECZA_MAX_COS_LOW = -1.0
SS_TECZA_MAX_COS_HIGH = 1.0
SS_TECZA_VAR_THRESH_LOW = 0.0
SS_TECZA_VAR_THRESH_HIGH = 1.0
SS_TECZA_MARG_THRESH_LOW = 0.0
SS_TECZA_MARG_THRESH_HIGH = 1.0
SS_TECZA_RETAIN_LOW = 0.0
SS_TECZA_RETAIN_HIGH = 1.0
SS_TECZA_SEP_MARGIN_LOW = 0.0
SS_TECZA_SEP_MARGIN_HIGH = 1.0
SS_TECZA_MAX_DIR_MIN = 1
SS_TECZA_MAX_DIR_MAX = 10
SS_TECZA_LOG_INTERVAL_MIN = 10
SS_TECZA_LOG_INTERVAL_MAX = 100

# --- TETNO code-enforced bounds ---
SS_TETNO_COND_THRESH_LOW = 0.0
SS_TETNO_COND_THRESH_HIGH = 1.0
SS_TETNO_ENT_FLOOR_LOW = 0.0
SS_TETNO_ENT_FLOOR_HIGH = 10.0
SS_TETNO_ENT_CEIL_LOW = 0.0
SS_TETNO_ENT_CEIL_HIGH = 10.0
SS_TETNO_COND_MARGIN_LOW = 0.0
SS_TETNO_COND_MARGIN_HIGH = 1.0
SS_TETNO_MIN_LAYER_SCALE_LOW = 0.0
SS_TETNO_MIN_LAYER_SCALE_HIGH = 1.0
SS_TETNO_THRESH_STEPS_MIN = 1
SS_TETNO_THRESH_STEPS_MAX = 50
SS_TETNO_LOG_INTERVAL_MIN = 10
SS_TETNO_LOG_INTERVAL_MAX = 100
