Function sub [src]

Subtract a field element

Prototype

pub inline fn sub(a: Fe, b: Fe) Fe

Parameters

a: Feb: Fe

Source

pub inline fn sub(a: Fe, b: Fe) Fe { var fe = b; comptime var i = 0; inline while (i < 4) : (i += 1) { fe.limbs[i + 1] += fe.limbs[i] >> 51; fe.limbs[i] &= MASK51; } fe.limbs[0] += 19 * (fe.limbs[4] >> 51); fe.limbs[4] &= MASK51; fe.limbs[0] = (a.limbs[0] + 0xfffffffffffda) - fe.limbs[0]; fe.limbs[1] = (a.limbs[1] + 0xffffffffffffe) - fe.limbs[1]; fe.limbs[2] = (a.limbs[2] + 0xffffffffffffe) - fe.limbs[2]; fe.limbs[3] = (a.limbs[3] + 0xffffffffffffe) - fe.limbs[3]; fe.limbs[4] = (a.limbs[4] + 0xffffffffffffe) - fe.limbs[4]; return fe; }