Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › math/ › big/ › int.zig › lldiv0p5
lldiv0p5
int.lldiv0p5
fn lldiv0p5 (quo : []Limb , rem : *Limb , a : []const Limb , b : HalfLimb ) void
File
Code
fn lldiv0p5 (quo : []Limb , rem : *Limb , a : []const Limb , b : HalfLimb ) void {
assert (a .len > 1 or a [0 ] >= b );
assert (quo .len >= a .len );
rem .* = 0 ;
for (a , 0 ..) |_ , ri | {
const i = a .len - ri - 1 ;
const ai_high = a [i ] >> half_limb_bits ;
const ai_low = a [i ] & ((1 << half_limb_bits ) - 1 );
const ai_high_with_carry = (rem .* << half_limb_bits ) | ai_high ;
const ai_high_quo = ai_high_with_carry / b ;
rem .* = ai_high_with_carry % b ;
const ai_low_with_carry = (rem .* << half_limb_bits ) | ai_low ;
const ai_low_quo = ai_low_with_carry / b ;
rem .* = ai_low_with_carry % b ;
quo [i ] = (ai_high_quo << half_limb_bits ) | ai_low_quo ;
}
}