macro_rules! impl_trifecta { ( $fn:ident, // name of the unsigned division function $zero_div_fn:ident, // function called when division by zero is attempted $half_division:ident, // function for division of a $uX by a $uX $n_h:expr, // the number of bits in $iH or $uH $uH:ident, // unsigned integer with half the bit width of $uX $uX:ident, // unsigned integer with half the bit width of $uD $uD:ident // unsigned integer type for the inputs and outputs of `$unsigned_name` ) => { ... }; }
Expand description
Creates an unsigned division function optimized for division of integers with bitwidths
larger than the largest hardware integer division supported. These functions use large radix
division algorithms that require both fast division and very fast widening multiplication on the
target microarchitecture. Otherwise, impl_delegate
should be used instead.