Skip to main content

golden_section

Function golden_section 

Source
pub fn golden_section(
    sigma_lo_in: Number,
    sigma_up_in: Number,
    q_lo_in: Number,
    q_up_in: Number,
    sigma_tol: Number,
    qf_tol: Number,
    max_steps: i32,
    q: impl FnMut(Number) -> Number,
) -> Number
Expand description

Pure-scalar golden-section minimizer used by QualityFunctionMuOracle::PerformGoldenSection (IpQualityFunctionMuOracle.cpp:668-790).

Searches for argmin_{σ ∈ [σ_lo, σ_up]} q(σ) via golden-section. Stops when either:

  • (σ_up − σ_lo) < σ_tol · σ_up (relative width), or
  • 1 − min(q_corners) / max(q_corners) < qf_tol (function flat),
  • nsections ≥ max_steps.

q_lo / q_up are the function values at the bracket endpoints, as in upstream where they’re often pre-evaluated and a sentinel -100.0 is passed when the value isn’t yet known.