pub(crate) fn product<R: Send>(
m: usize,
n: usize,
k: usize,
op: impl FnOnce(Par) -> R + Send,
) -> RExpand description
Run an m × k by k × n faer product with the treams-rs budget.
Matrix products split their output among workers and give the same bits at
every budget. A matrix-vector product (m or n equal to one) splits its inner
dimension instead, which changes the last bits with the worker count; it is
bound by memory bandwidth and stays sequential.