Function gcd [src]

rma may alias x or y. x and y may alias each other. rma's allocator is used for temporary storage to boost multiplication performance.

Prototype

pub fn gcd(rma: *Managed, x: *const Managed, y: *const Managed) !void

Parameters

rma: *Managedx: *const Managedy: *const Managed

Source

pub fn gcd(rma: *Managed, x: *const Managed, y: *const Managed) !void { try rma.ensureCapacity(@min(x.len(), y.len())); var m = rma.toMutable(); var limbs_buffer = std.ArrayList(Limb).init(rma.allocator); defer limbs_buffer.deinit(); try m.gcd(x.toConst(), y.toConst(), &limbs_buffer); rma.setMetadata(m.positive, m.len); }