Function gcdNoAlias [src]
rma may not alias x or y.
x and y may alias each other.
Asserts that rma has enough limbs to store the result. Upper bound is given by calcGcdNoAliasLimbLen.
limbs_buffer is used for temporary storage during the operation.
Prototype
pub fn gcdNoAlias(rma: *Mutable, x: Const, y: Const, limbs_buffer: *std.ArrayList(Limb)) !void
Parameters
rma: *Mutable
x: Const
y: Const
limbs_buffer: *std.ArrayList(Limb)
Source
pub fn gcdNoAlias(rma: *Mutable, x: Const, y: Const, limbs_buffer: *std.ArrayList(Limb)) !void {
assert(rma.limbs.ptr != x.limbs.ptr); // illegal aliasing
assert(rma.limbs.ptr != y.limbs.ptr); // illegal aliasing
return gcdLehmer(rma, x, y, limbs_buffer);
}