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
|
||||
/// nonzero.
|
||||
pub fn pow_q_minus_2(&self) -> Self {
|
||||
self.pow(&[
|
||||
0xfffffffeffffffff,
|
||||
0x53bda402fffe5bfe,
|
||||
0x3339d80809a1d805,
|
||||
0x73eda753299d7d48,
|
||||
])
|
||||
# found using https://github.com/kwantam/addchain
|
||||
t10 = input
|
||||
t0 = sqr(t10)
|
||||
t1 = t0 * t10
|
||||
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)]
|
||||
|
|
Loading…
Reference in New Issue