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: *Managed
x: *const Managed
y: *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);
}