fn sqrt(r: *Mutable, a: Const, limbs_buffer: []Limb) void

r = ⌊√a⌋

r may alias a.

Asserts that r has enough limbs to store the result. Upper bound is (a.limbs.len - 1) / 2 + 1.

limbs_buffer is used for temporary storage. The amount required is given by calcSqrtLimbsBufferLen.

Parameters

r: *Mutable,
a: Const,
limbs_buffer: []Limb,