Function sqr [src]

r = a * a

Prototype

pub fn sqr(rma: *Managed, a: *const Managed) !void

Parameters

rma: *Manageda: *const Managed

Source

pub fn sqr(rma: *Managed, a: *const Managed) !void { const needed_limbs = 2 * a.len() + 1; if (rma.limbs.ptr == a.limbs.ptr) { var m = try Managed.initCapacity(rma.allocator, needed_limbs); errdefer m.deinit(); var m_mut = m.toMutable(); m_mut.sqrNoAlias(a.toConst(), rma.allocator); m.setMetadata(m_mut.positive, m_mut.len); rma.deinit(); rma.swap(&m); } else { try rma.ensureCapacity(needed_limbs); var rma_mut = rma.toMutable(); rma_mut.sqrNoAlias(a.toConst(), rma.allocator); rma.setMetadata(rma_mut.positive, rma_mut.len); } }