fn double(&mut self) {
        let a = self.limbs_mut();
        unsafe {
            syscall_ed_add(a, a);
        }
    }
In Edwards curves, doubling is the same as adding a point to itself.
crates/zkvm/lib/src/ed25519.rs