From 7ed9eb8617c5de3b7af533f19c871bc7d6e4c930 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Mon, 4 Sep 2017 09:34:04 -1000 Subject: [PATCH] Replace one multiplication with a squaring in scalar inversion. This brings the code up to date with the 2017-09-04 version of the source article. --- src/scalar.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/scalar.rs b/src/scalar.rs index 8cf4c95..00124c1 100644 --- a/src/scalar.rs +++ b/src/scalar.rs @@ -573,13 +573,13 @@ impl UnpackedScalar { let _1 = *self; let _10 = _1.square(); - let _11 = UnpackedScalar::multiply_add(&_10, &_1, &UnpackedScalar::zero()); - let _101 = UnpackedScalar::multiply_add(&_10, &_11, &UnpackedScalar::zero()); - let _111 = UnpackedScalar::multiply_add(&_10, &_101, &UnpackedScalar::zero()); - let _1001 = UnpackedScalar::multiply_add(&_10, &_111, &UnpackedScalar::zero()); - let _1011 = UnpackedScalar::multiply_add(&_10, &_1001, &UnpackedScalar::zero()); - let _1101 = UnpackedScalar::multiply_add(&_10, &_1011, &UnpackedScalar::zero()); - let _1111 = UnpackedScalar::multiply_add(&_10, &_1101, &UnpackedScalar::zero()); + let _100 = _10.square(); + let _11 = UnpackedScalar::multiply_add(&_10, &_1, &UnpackedScalar::zero()); + let _101 = UnpackedScalar::multiply_add(&_10, &_11, &UnpackedScalar::zero()); + let _111 = UnpackedScalar::multiply_add(&_10, &_101, &UnpackedScalar::zero()); + let _1001 = UnpackedScalar::multiply_add(&_10, &_111, &UnpackedScalar::zero()); + let _1011 = UnpackedScalar::multiply_add(&_10, &_1001, &UnpackedScalar::zero()); + let _1111 = UnpackedScalar::multiply_add(&_100, &_1011, &UnpackedScalar::zero()); // _10000 let mut y = UnpackedScalar::multiply_add(&_1111, &_1, &UnpackedScalar::zero()); @@ -597,8 +597,8 @@ impl UnpackedScalar { square_multiply(&mut y, 1 + 4, &_1111); square_multiply(&mut y, 1 + 4, &_1111); square_multiply(&mut y, 4, &_1001); - square_multiply(&mut y, 4, &_1101); - square_multiply(&mut y, 3, &_111); + square_multiply(&mut y, 2, &_11); + square_multiply(&mut y, 1 + 4, &_1111); square_multiply(&mut y, 1 + 3, &_101); square_multiply(&mut y, 3 + 3, &_101); square_multiply(&mut y, 3, &_111);