///|
/// Smallest closed population attaining a target cycle throughput. Exact MVA
/// points are retained; infeasible targets never return an invented estimate.
pub fn ClosedNetwork::population_for_throughput(
self : ClosedNetwork,
target : Double,
maximum_population : Int,
) -> ClosedPopulationMetrics raise QueueError {
nonnegative(target, "throughput target")
let curve = self.population_curve(maximum_population)
for point in curve {
if point.throughput >= target {
return point
}
}
raise Infeasible("throughput target not reached within population bound")
}