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.