Function divTrunc [src]
q = a / b (rem r)
a / b are truncated (rounded towards -inf).
Returns an error if memory could not be allocated.
Prototype
pub fn divTrunc(q: *Managed, r: *Managed, a: *const Managed, b: *const Managed) !void
Parameters
q: *Managed
r: *Managed
a: *const Managed
b: *const Managed
Source
pub fn divTrunc(q: *Managed, r: *Managed, a: *const Managed, b: *const Managed) !void {
try q.ensureCapacity(a.len());
try r.ensureCapacity(b.len());
var mq = q.toMutable();
var mr = r.toMutable();
const limbs_buffer = try q.allocator.alloc(Limb, calcDivLimbsBufferLen(a.len(), b.len()));
defer q.allocator.free(limbs_buffer);
mq.divTrunc(&mr, a.toConst(), b.toConst(), limbs_buffer);
q.setMetadata(mq.positive, mq.len);
r.setMetadata(mr.positive, mr.len);
}