Function neg [src]
Return -s (mod L)
Prototype
pub fn neg(s: CompressedScalar) CompressedScalar
Parameters
s: CompressedScalar
Source
pub fn neg(s: CompressedScalar) CompressedScalar {
const fs: [64]u8 = field_order_s ++ [_]u8{0} ** 32;
var sx: [64]u8 = undefined;
sx[0..32].* = s;
@memset(sx[32..], 0);
var carry: u32 = 0;
var i: usize = 0;
while (i < 64) : (i += 1) {
carry = @as(u32, fs[i]) -% sx[i] -% @as(u32, carry);
sx[i] = @as(u8, @truncate(carry));
carry = (carry >> 8) & 1;
}
return reduce64(sx);
}