# must fail: abr_extreme_bola_like_past_128_bits # the utility-over-buffer cross-multiplication in 128 bits, wrapping (abr::BolaLike::choose) diff --git a/wai/wai-rs/src/http_binding/abr.rs b/wai/wai-rs/src/http_binding/abr.rs index 6fb8973c..0f72e915 100644 --- a/wai/wai-rs/src/http_binding/abr.rs +++ b/wai/wai-rs/src/http_binding/abr.rs @@ -302,7 +302,7 @@ impl Policy for BolaLike { for i in (0..k).filter(|&i| score[i] > 0) { // score[i]/size(i) > score[b]/size(b), by cross-multiplication widened // past 128 bits: a score times a size reaches 2^141. - if best.is_none_or(|b| product_greater(score[i] as u128, size(b), score[b] as u128, size(i))) { + if best.is_none_or(|b| (score[i] as u128).wrapping_mul(u128::from(size(b))) > (score[b] as u128).wrapping_mul(u128::from(size(i)))) { best = Some(i); } }