pub fn max_routable_par_within(
mp: &Metapipeline,
buffer_words: &[usize],
ag_stages: &[usize],
t: &PlasticineTarget,
budget: LinkBudget,
upper: usize,
) -> Result<(usize, usize), Unplaceable>Expand description
max_routable_par searching below upper (capped at capacity) — for an unroll that the work itself
bounds below capacity (fewer outer iterations than instances). The search is a BISECTION over
[1, upper]: routability is treated as monotone in the unroll (more instances, more perimeter streams), so
the result is the widest unroll the bisection finds routable — a stalled negotiation at some intermediate
width would hide a wider routable one, which is the honest limit of a heuristic router without the exact
rung on the full problem.