Function shiftRight [src]

r = a >> shift r and a may alias.

Prototype

pub fn shiftRight(r: *Managed, a: *const Managed, shift: usize) !void

Parameters

r: *Manageda: *const Managedshift: usize

Source

pub fn shiftRight(r: *Managed, a: *const Managed, shift: usize) !void { if (a.len() <= shift / limb_bits) { // Shifting negative numbers converges to -1 instead of 0 if (a.isPositive()) { r.metadata = 1; r.limbs[0] = 0; } else { r.metadata = 1; r.setSign(false); r.limbs[0] = 1; } return; } try r.ensureCapacity(a.len() - (shift / limb_bits)); var m = r.toMutable(); m.shiftRight(a.toConst(), shift); r.setMetadata(m.positive, m.len); }