Incorporate baseline addition chain for Fq generated by ValarDragon
This commit is contained in:
parent
df7e4711d3
commit
e5bee08e80
312
src/fq.rs
312
src/fq.rs
|
@ -290,12 +290,312 @@ impl Fq {
|
||||||
/// effect of inverting the element if it is
|
/// effect of inverting the element if it is
|
||||||
/// nonzero.
|
/// nonzero.
|
||||||
pub fn pow_q_minus_2(&self) -> Self {
|
pub fn pow_q_minus_2(&self) -> Self {
|
||||||
self.pow(&[
|
# found using https://github.com/kwantam/addchain
|
||||||
0xfffffffeffffffff,
|
t10 = input
|
||||||
0x53bda402fffe5bfe,
|
t0 = sqr(t10)
|
||||||
0x3339d80809a1d805,
|
t1 = t0 * t10
|
||||||
0x73eda753299d7d48,
|
t16 = sqr(t0)
|
||||||
])
|
t6 = sqr(t16)
|
||||||
|
t5 = t6 * t0
|
||||||
|
t0 = t6 * t16
|
||||||
|
t12 = t5 * t16
|
||||||
|
t2 = sqr(t6)
|
||||||
|
t7 = t5 * t6
|
||||||
|
t15 = t0 * t5
|
||||||
|
t17 = sqr(t12)
|
||||||
|
t1 = t17 * t1
|
||||||
|
t3 = t7 * t2
|
||||||
|
t8 = t1 * t17
|
||||||
|
t4 = t8 * t2
|
||||||
|
t9 = t8 * t7
|
||||||
|
t7 = t4 * t5
|
||||||
|
t11 = t4 * t17
|
||||||
|
t5 = t9 * t17
|
||||||
|
t14 = t7 * t15
|
||||||
|
t13 = t11 * t12
|
||||||
|
t12 = t11 * t17
|
||||||
|
t15 = t12 * t15
|
||||||
|
t16 = t15 * t16
|
||||||
|
t3 = t16 * t3
|
||||||
|
t17 = t3 * t17
|
||||||
|
t0 = t17 * t0
|
||||||
|
t6 = t0 * t6
|
||||||
|
t2 = t6 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t17
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t16
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t15
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t15
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t14
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t13
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t12
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t11
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t8
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t10
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t9
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t8
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t7
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t6
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t5
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t3
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t4
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t3
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t3
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t2
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t1
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = sqr(t0)
|
||||||
|
t0 = t0 * t1
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
|
|
Loading…
Reference in New Issue