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); }