fn sqrNoAlias(rma: *Mutable, a: Const, opt_allocator: ?Allocator) void

rma = a * a

rma may not alias with a.

Asserts the result fits in rma. An upper bound on the number of limbs needed by rma is given by 2 * a.limbs.len + 1.

If allocator is provided, it will be used for temporary storage to improve multiplication performance. error.OutOfMemory is handled with a fallback algorithm.

Parameters

rma: *Mutable,
a: Const,
opt_allocator: ?Allocator,