From 4db735ca444a0295d1cb46ff20f1beea287b1a99 Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Sun, 12 Mar 2017 23:17:49 -0700 Subject: [PATCH] Add subtraction stub --- src/field.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/field.rs b/src/field.rs index 0e01e85..706f0af 100644 --- a/src/field.rs +++ b/src/field.rs @@ -75,6 +75,16 @@ pub fn mul64(a: &[u64;5], b: &[u64;5]) -> [u64;5] { [c0,c1,c2,c3,c4] } +fn subtract(a: &[u64; 5], b: &[u64; 5]) -> [u64; 5] { + // add p to avoid underflow + [ (a[0] + 2251799813685229) - b[0] + , (a[1] + 2251799813685247) - b[1] + , (a[2] + 2251799813685247) - b[2] + , (a[3] + 2251799813685247) - b[3] + , (a[4] + 2251799813685247) - b[4] + ] +} + fn from_bytes_64(bytes: &[u8;32]) -> [u64; 5] { let low_51_bit_mask = (1u64 << 51) - 1; // load bits [ 0, 64), no shift