Macro specialized_div_rem::impl_asymmetric[][src]

macro_rules! impl_asymmetric {
    ($unsigned_name : ident, $signed_name : ident, $zero_div_fn : ident,
 $half_division : ident, $asymmetric_division : ident, $n_h : expr, $uH :
 ident, $uX : ident, $uD : ident, $iD : ident, $($unsigned_attr : meta), * ;
 $($signed_attr : meta), *) => { ... };
}
Expand description

Creates unsigned and signed division functions optimized for dividing integers with the same bitwidth as the largest operand in an asymmetrically sized division. For example, x86-64 has an assembly instruction that can divide a 128 bit integer by a 64 bit integer if the quotient fits in 64 bits. The 128 bit version of this algorithm would use that fast hardware division to construct a full 128 bit by 128 bit division.