Convert multiple square_assigns in a row to a single function
This commit is contained in:
parent
0b6886e9e0
commit
15ea7a5917
281
src/fq.rs
281
src/fq.rs
|
@ -290,6 +290,12 @@ impl Fq {
|
|||
/// effect of inverting the element if it is
|
||||
/// nonzero.
|
||||
pub fn pow_q_minus_2(&self) -> Self {
|
||||
#[inline(always)]
|
||||
fn square_assign_multi(n: &mut Fq, num_times: usize) {
|
||||
for _ in 0..num_times {
|
||||
n.square_assign();
|
||||
}
|
||||
}
|
||||
// found using https://github.com/kwantam/addchain
|
||||
let t10 = *self;
|
||||
let mut t0 = t10;
|
||||
|
@ -342,280 +348,61 @@ impl Fq {
|
|||
t0.mul_assign(&t17);
|
||||
t6.mul_assign(&t0);
|
||||
t2.mul_assign(&t6);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t17);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 9);
|
||||
t0.mul_assign(&t16);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 9);
|
||||
t0.mul_assign(&t15);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 9);
|
||||
t0.mul_assign(&t15);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 7);
|
||||
t0.mul_assign(&t14);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 7);
|
||||
t0.mul_assign(&t13);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 10);
|
||||
t0.mul_assign(&t12);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 9);
|
||||
t0.mul_assign(&t11);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t8);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t10);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 14);
|
||||
t0.mul_assign(&t9);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 10);
|
||||
t0.mul_assign(&t8);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 15);
|
||||
t0.mul_assign(&t7);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 10);
|
||||
t0.mul_assign(&t6);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t5);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 16);
|
||||
t0.mul_assign(&t3);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 7);
|
||||
t0.mul_assign(&t4);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 9);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t3);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t3);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 8);
|
||||
t0.mul_assign(&t2);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 5);
|
||||
t0.mul_assign(&t1);
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
t0.square_assign();
|
||||
square_assign_multi(&mut t0, 5);
|
||||
t0.mul_assign(&t1);
|
||||
|
||||
t0
|
||||
|
|
Loading…
Reference in New Issue