import SymbolicRegression: L2DistLoss

maximum_residual = 1e-2
custom_cos(x) = cos(x)

default_params = (
    binary_operators=(/, +, *),
    unary_operators=(exp, custom_cos),
    constraints=nothing,
    loss=L2DistLoss(),
    ns=10,
    topn=10,
    parsimony=0.000100f0,
    alpha=0.100000f0,
    maxsize=20,
    maxdepth=nothing,
    fast_cycle=false,
    migration=true,
    hofMigration=true,
    fractionReplacedHof=0.1f0,
    shouldOptimizeConstants=true,
    hofFile=nothing,
    npopulations=nothing,
    perturbationFactor=1.000000f0,
    annealing=true,
    batching=false,
    batchSize=50,
    mutationWeights=[
        10.000000, 1.000000, 1.000000, 3.000000, 3.000000, 0.010000, 1.000000, 1.000000
    ],
    crossoverProbability=0.0f0,
    warmupMaxsizeBy=0.0f0,
    useFrequency=false,
    npop=1000,
    ncyclesperiteration=300,
    fractionReplaced=0.1f0,
    verbosity=convert(Int, 1e9),
    probNegate=0.01f0,
    seed=nothing,
    bin_constraints=nothing,
    una_constraints=nothing,
    progress=false,
    terminal_width=nothing,
    warmupMaxsize=nothing,
    optimizer_algorithm="NelderMead",
    optimizer_nrestarts=3,
    optimize_probability=0.1f0,
    optimizer_iterations=100,
    recorder=nothing,
    recorder_file="pysr_recorder.json",
    probPickFirst=1.0,
    earlyStopCondition=nothing,
    stateReturn=false,
    timeout_in_seconds=nothing,
    skip_mutation_failures=false,
)
