pub fn double(x: u64) -> u64
2 * x via add(x, x) — keeps the implementation in pure field ops rather than relying on the storage representation.
add(x, x)