Function mul32 [src]
Multiply a field element with a small (32-bit) integer
Prototype
pub inline fn mul32(a: Fe, comptime n: u32) Fe
Parameters
a: Fe
n: u32
Source
pub inline fn mul32(a: Fe, comptime n: u32) Fe {
const sn = @as(u128, @intCast(n));
var fe: Fe = undefined;
var x: u128 = 0;
comptime var i = 0;
inline while (i < 5) : (i += 1) {
x = a.limbs[i] * sn + (x >> 51);
fe.limbs[i] = @as(u64, @truncate(x)) & MASK51;
}
fe.limbs[0] += @as(u64, @intCast(x >> 51)) * 19;
return fe;
}