"""BROYDEN solver and search space distribution prior constants.

Each SP_ constant encodes a Bayesian prior (mu or sigma) for a method
parameter distribution. Names follow: SP_{METHOD}_{PARAM}_{MU|SIGMA}.
SP = Search Prior.
"""
# --- Shared priors ---
SP_STRENGTH_MU = 0.0
SP_STRENGTH_SIGMA = 1.0
SP_LEARNING_RATE_MU = -7.0
SP_LEARNING_RATE_SIGMA = 2.0
SP_LAYER_MIN = 1

# --- OSTRZE ---
SP_OSTRZE_C_MU = 0.0
SP_OSTRZE_C_SIGMA = 2.0

# --- MLP ---
SP_MLP_HIDDEN_DIM_MU = 5.0
SP_MLP_HIDDEN_DIM_SIGMA = 1.0
SP_MLP_NUM_LAYERS_MIN = 1
SP_MLP_NUM_LAYERS_MAX = 5
SP_MLP_DROPOUT_MU = 0.3
SP_MLP_DROPOUT_SIGMA = 0.15
SP_MLP_EPOCHS_MU = 3.0
SP_MLP_EPOCHS_SIGMA = 1.0
SP_MLP_WEIGHT_DECAY_MU = -8.0
SP_MLP_WEIGHT_DECAY_SIGMA = 2.0
SP_MLP_EARLY_STOP_TOL_MU = -5.0
SP_MLP_EARLY_STOP_TOL_SIGMA = 1.5
SP_MLP_INPUT_DIVISOR_MIN = 1
SP_MLP_INPUT_DIVISOR_MAX = 8
SP_MLP_GATING_DIVISOR_MIN = 1
SP_MLP_GATING_DIVISOR_MAX = 8
SP_MLP_PATIENCE_MIN = 3
SP_MLP_PATIENCE_MAX = 15

# --- TECZA ---
SP_TECZA_NUM_DIR_MU = 1.0
SP_TECZA_NUM_DIR_SIGMA = 0.5
SP_TECZA_OPT_STEPS_MU = 5.5
SP_TECZA_OPT_STEPS_SIGMA = 1.0
SP_TECZA_RETAIN_MU = 0.5
SP_TECZA_RETAIN_SIGMA = 0.3
SP_TECZA_INDEP_MU = -1.0
SP_TECZA_INDEP_SIGMA = 1.0
SP_TECZA_MIN_COS_LOW = 0.0
SP_TECZA_MIN_COS_HIGH = 0.5
SP_TECZA_MAX_COS_LOW = 0.5
SP_TECZA_MAX_COS_HIGH = 1.0
SP_TECZA_VAR_THRESH_LOW = 0.8
SP_TECZA_VAR_THRESH_HIGH = 0.99
SP_TECZA_MARG_THRESH_LOW = 0.01
SP_TECZA_MARG_THRESH_HIGH = 0.2
SP_TECZA_MAX_DIR_MIN = 1
SP_TECZA_MAX_DIR_MAX = 10
SP_TECZA_ABL_WEIGHT_MU = 0.0
SP_TECZA_ABL_WEIGHT_SIGMA = 1.0
SP_TECZA_ADD_WEIGHT_MU = 0.0
SP_TECZA_ADD_WEIGHT_SIGMA = 1.0
SP_TECZA_SEP_MARGIN_MU = 0.1
SP_TECZA_SEP_MARGIN_SIGMA = 0.1
SP_TECZA_PERTURB_MU = -3.0
SP_TECZA_PERTURB_SIGMA = 1.0
SP_TECZA_NOISE_MU = -3.0
SP_TECZA_NOISE_SIGMA = 1.0
SP_TECZA_LOG_INTERVAL_MIN = 10
SP_TECZA_LOG_INTERVAL_MAX = 100

# --- TETNO ---
SP_TETNO_COND_THRESH_MU = 0.5
SP_TETNO_COND_THRESH_SIGMA = 0.2
SP_TETNO_GATE_TEMP_MU = -1.0
SP_TETNO_GATE_TEMP_SIGMA = 1.0
SP_TETNO_ENT_FLOOR_MU = 0.5
SP_TETNO_ENT_FLOOR_SIGMA = 0.3
SP_TETNO_ENT_CEIL_MU = 2.0
SP_TETNO_ENT_CEIL_SIGMA = 1.0
SP_TETNO_MAX_ALPHA_MU = 0.0
SP_TETNO_MAX_ALPHA_SIGMA = 1.0
SP_TETNO_OPT_STEPS_MU = 5.0
SP_TETNO_OPT_STEPS_SIGMA = 1.0
SP_TETNO_THRESH_STEPS_MIN = 5
SP_TETNO_THRESH_STEPS_MAX = 50
SP_TETNO_COND_MARGIN_MU = 0.1
SP_TETNO_COND_MARGIN_SIGMA = 0.1
SP_TETNO_MIN_LAYER_SCALE_LOW = 0.0
SP_TETNO_MIN_LAYER_SCALE_HIGH = 1.0
SP_TETNO_LOG_INTERVAL_MIN = 10
SP_TETNO_LOG_INTERVAL_MAX = 100
