Remove unnecessary shadowing from Fq::invert and Fr::invert
Shadowing causes Rust to create new stack variables instead of reusing the stack space. This change saves 160 bytes of stack space in Fq::invert (a 20% saving in my tests), and 128 bytes of stack space in Fr::invert.
This commit is contained in:
parent
085e8ae675
commit
c5bf022613
21
src/fq.rs
21
src/fq.rs
|
@ -416,16 +416,15 @@ impl Fq {
|
|||
}
|
||||
}
|
||||
// found using https://github.com/kwantam/addchain
|
||||
let t10 = *self;
|
||||
let t0 = t10.square();
|
||||
let mut t1 = t0 * &t10;
|
||||
let mut t0 = self.square();
|
||||
let mut t1 = t0 * self;
|
||||
let mut t16 = t0.square();
|
||||
let mut t6 = t16.square();
|
||||
let t5 = t6 * &t0;
|
||||
let mut t0 = t6 * &t16;
|
||||
let t12 = t5 * &t16;
|
||||
let mut t5 = t6 * &t0;
|
||||
t0 = t6 * &t16;
|
||||
let mut t12 = t5 * &t16;
|
||||
let mut t2 = t6.square();
|
||||
let t7 = t5 * &t6;
|
||||
let mut t7 = t5 * &t6;
|
||||
let mut t15 = t0 * &t5;
|
||||
let mut t17 = t12.square();
|
||||
t1.mul_assign(&t17);
|
||||
|
@ -433,12 +432,12 @@ impl Fq {
|
|||
let t8 = t1 * &t17;
|
||||
let t4 = t8 * &t2;
|
||||
let t9 = t8 * &t7;
|
||||
let t7 = t4 * &t5;
|
||||
t7 = t4 * &t5;
|
||||
let t11 = t4 * &t17;
|
||||
let t5 = t9 * &t17;
|
||||
t5 = t9 * &t17;
|
||||
let t14 = t7 * &t15;
|
||||
let t13 = t11 * &t12;
|
||||
let t12 = t11 * &t17;
|
||||
t12 = t11 * &t17;
|
||||
t15.mul_assign(&t12);
|
||||
t16.mul_assign(&t15);
|
||||
t3.mul_assign(&t16);
|
||||
|
@ -465,7 +464,7 @@ impl Fq {
|
|||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t8);
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t10);
|
||||
t0.mul_assign(self);
|
||||
square_assign_multi(&mut t0, 14);
|
||||
t0.mul_assign(&t9);
|
||||
square_assign_multi(&mut t0, 10);
|
||||
|
|
25
src/fr.rs
25
src/fr.rs
|
@ -367,11 +367,10 @@ impl Fr {
|
|||
}
|
||||
}
|
||||
// found using https://github.com/kwantam/addchain
|
||||
let t10 = *self;
|
||||
let t1 = t10.square();
|
||||
let t0 = t1.square();
|
||||
let t3 = t0 * &t1;
|
||||
let t6 = t3 * &t10;
|
||||
let mut t1 = self.square();
|
||||
let mut t0 = t1.square();
|
||||
let mut t3 = t0 * &t1;
|
||||
let t6 = t3 * self;
|
||||
let t7 = t6 * &t1;
|
||||
let t12 = t7 * &t3;
|
||||
let t13 = t12 * &t0;
|
||||
|
@ -386,10 +385,10 @@ impl Fr {
|
|||
let t8 = t18 * &t3;
|
||||
let t17 = t14 * &t3;
|
||||
let t11 = t8 * &t3;
|
||||
let t1 = t17 * &t3;
|
||||
t1 = t17 * &t3;
|
||||
let t5 = t11 * &t3;
|
||||
let t3 = t5 * &t0;
|
||||
let mut t0 = t5.square();
|
||||
t3 = t5 * &t0;
|
||||
t0 = t5.square();
|
||||
square_assign_multi(&mut t0, 5);
|
||||
t0.mul_assign(&t3);
|
||||
square_assign_multi(&mut t0, 6);
|
||||
|
@ -407,7 +406,7 @@ impl Fr {
|
|||
square_assign_multi(&mut t0, 5);
|
||||
t0.mul_assign(&t16);
|
||||
square_assign_multi(&mut t0, 3);
|
||||
t0.mul_assign(&t10);
|
||||
t0.mul_assign(self);
|
||||
square_assign_multi(&mut t0, 11);
|
||||
t0.mul_assign(&t11);
|
||||
square_assign_multi(&mut t0, 8);
|
||||
|
@ -415,7 +414,7 @@ impl Fr {
|
|||
square_assign_multi(&mut t0, 5);
|
||||
t0.mul_assign(&t15);
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t10);
|
||||
t0.mul_assign(self);
|
||||
square_assign_multi(&mut t0, 12);
|
||||
t0.mul_assign(&t13);
|
||||
square_assign_multi(&mut t0, 7);
|
||||
|
@ -427,9 +426,9 @@ impl Fr {
|
|||
square_assign_multi(&mut t0, 5);
|
||||
t0.mul_assign(&t13);
|
||||
square_assign_multi(&mut t0, 2);
|
||||
t0.mul_assign(&t10);
|
||||
t0.mul_assign(self);
|
||||
square_assign_multi(&mut t0, 6);
|
||||
t0.mul_assign(&t10);
|
||||
t0.mul_assign(self);
|
||||
square_assign_multi(&mut t0, 9);
|
||||
t0.mul_assign(&t7);
|
||||
square_assign_multi(&mut t0, 6);
|
||||
|
@ -437,7 +436,7 @@ impl Fr {
|
|||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t11);
|
||||
square_assign_multi(&mut t0, 3);
|
||||
t0.mul_assign(&t10);
|
||||
t0.mul_assign(self);
|
||||
square_assign_multi(&mut t0, 12);
|
||||
t0.mul_assign(&t9);
|
||||
square_assign_multi(&mut t0, 11);
|
||||
|
|
Loading…
Reference in New Issue