Fp::sqr without FpDbl

dev
MITSUNARI Shigeo 9 years ago
parent e73eb03ea7
commit a5dbd60af6
  1. 10
      include/mcl/fp_tower.hpp

@ -274,6 +274,15 @@ private:
Fp::mul(t, a, b); Fp::mul(t, a, b);
Fp::sub(py[0], aa, bb); // a^2 - b^2 Fp::sub(py[0], aa, bb); // a^2 - b^2
Fp::add(py[1], t, t); // 2ab Fp::add(py[1], t, t); // 2ab
#else
#if 1 // faster than using FpDbl
Fp t1, t2, t3;
Fp::add(t1, b, b); // 2b
t1 *= a; // 2ab
Fp::add(t2, a, b); // a + b
Fp::sub(t3, a, b); // a - b
Fp::mul(py[0], t2, t3); // (a + b)(a - b)
py[1] = t1;
#else #else
Fp t1, t2; Fp t1, t2;
FpDbl d1, d2; FpDbl d1, d2;
@ -284,6 +293,7 @@ private:
FpDbl::mulPre(d1, t1, t2); // (a + b)(a - b) FpDbl::mulPre(d1, t1, t2); // (a + b)(a - b)
FpDbl::mod(py[0], d1); FpDbl::mod(py[0], d1);
FpDbl::mod(py[1], d2); FpDbl::mod(py[1], d2);
#endif
#endif #endif
} }
/* /*

Loading…
Cancel
Save