fe_cmov(h.X, x_sqrtm1, 1 - has_m_root)
fe_neg(negx, h.X)
- fe_cmov(h.X, negx, fe_isnegative(h.X) ^ ((s[31] >> 5) >> 2))
+ fe_cmov(h.X, negx, fe_isnegative(h.X) ^ (s[31] >> 7))
fe_mul(h.T, h.X, h.Y)
return (has_m_root | has_p_root) - 1
const x: u8 = u8(b) ^ u8(c) /* 0: yes; 1..255: no */
let y: u32 = u32(x) /* 0: yes; 1..255: no */
y--
- return u8((y >> 29) >> 2) /* 1: yes; 0: no */
+ return u8(y >> 31) /* 1: yes; 0: no */
}
//@ts-expect-error
@inline
export function negative (b: i8): u8 {
const x: u8 = u8(b) /* 0..127: no 128..255: yes */
- return (x >> 5) >> 2 /* 1: yes; 0: no */
+ return x >> 7 /* 1: yes; 0: no */
}
//@ts-expect-error