Module u64

Module u64 

Source
Available on docsrs and curve25519_dalek_bits=64 only.
Expand description

The u64 backend uses u64s and a (u64, u64) -> u128 multiplier.

On x86_64, the idiom (x as u128) * (y as u128) lowers to MUL instructions taking 64-bit inputs and producing 128-bit outputs. On other platforms, this implementation is not recommended.

On Haswell and newer, the BMI2 extension provides MULX, and on Broadwell and newer, the ADX extension provides ADCX and ADOX (allowing the CPU to compute two carry chains in parallel). These will be used if available.

Modulesยง

constants
This module contains backend-specific constant values, such as the 64-bit limbs of curve constants.
field
Field arithmetic modulo \(p = 2^{255} - 19\), using \(64\)-bit limbs with \(128\)-bit products.
scalar
Arithmetic mod \(2^{252} + 27742317777372353535851937790883648493\) with five \(52\)-bit unsigned limbs.