betrusted-curve25519-dalek-.../src
Henry de Valence 14163131f9 Lift the reduction state of the field elements into the type system.
This splits the `FieldElement51x4` type into two types:

- `F51x4Reduced` (with reduced limbs)
- `F51x4Unreduced` (with unreduced limbs)

The reduction is implemented as a `From` impl to convert one type to the other.

The output of a multiplication is now a `F51x4Unreduced`.  The reason is that
the inputs to IFMA operations must be at most 52 bits, so it's not possible to
perform an addition of (51+epsilon)-bit values and still be small enough to be
used as an input to multiplication.  So, it doesn't make sense to perform a
reduction at the end of a multiplication, because the reduced values will be
fed into an addition or subtraction, which then needs to be re-reduced.
2019-01-18 14:19:30 -08:00
..
backend Lift the reduction state of the field elements into the type system. 2019-01-18 14:19:30 -08:00
constants.rs Restructure source tree into serial and vector backends. 2019-01-18 01:49:40 -08:00
edwards.rs Replace avx2_backend with simd_backend (autoselects AVX2/IFMA) 2019-01-18 01:52:17 -08:00
field.rs Restructure source tree into serial and vector backends. 2019-01-18 01:49:40 -08:00
lib.rs Add a FieldElement51x4 type. 2019-01-18 14:19:30 -08:00
macros.rs Update year in copyright notices to 2018. 2018-07-05 00:30:27 +00:00
montgomery.rs implement default for MontgomeryPoint using zero byte array 2018-11-14 23:16:50 -05:00
prelude.rs Unify alloc and std cargo features 2018-07-23 10:50:21 -07:00
ristretto.rs Restructure source tree into serial and vector backends. 2019-01-18 01:49:40 -08:00
scalar.rs Restructure source tree into serial and vector backends. 2019-01-18 01:49:40 -08:00
traits.rs Fix doctests (missed during merge) 2018-07-20 11:50:42 -07:00
window.rs Restructure source tree into serial and vector backends. 2019-01-18 01:49:40 -08:00