99 for (
int i = 0; i < 8 * 70; i++) {
105 for (
int i = 1; i < 8; i++) {
109 for (
int j = 0;
j <
N;
j++) {
110 bn::opt_atePairingKnownG2Mixed(e, i, l_T, 1, Qn, Pn);
113 double t = clk.
getClock() / double(
N) / 1e3;
114 printf(
"pairing %d %7.2fKclk %7.2fKclk\n", i, t, t - pre);
124 for (
int i = 1; i < 8; i++) {
129 bn::opt_atePairingKnownG2Mixed(e, i, l_T, 1, Qn, Pn);
136 for (
int i = 1; i < 7; i++) {
137 printf(
"%d %d %d\n", c1[i + 1] - c1[i], c2[i + 1] - c2[i], c3[i + 1] - c3[i]);
139 int m = c1[3] - c1[2];
140 int r = c2[3] - c2[2];
141 int a = c3[3] - c3[2];
171 memset(pre, 0,
sizeof(pre));
172 PrecomputePairingKnownG2(pre, 8, Qn);
176 bn::opt_atePairingKnownG2(e, pre[0], Pn[0]);
181 printf(
"(%dm + %dr + %da) * N + EXP + %dm + %dr + %da\n"
183 , c1[2] - 2 * m - em, c2[2] - 2 *
r - er, c3[2] - 2 *
a - ea);
184 printf(
"EXP = %dm + %dr + %da\n", em, er, ea);
185 printf(
"single U = (%dm + %dr + %da) + EXP\n", sm - em, sr - er, sa - ea);
186 printf(
" U = %dm + %dr + %da\n", sm, sr, sa);
187 printf(
" K = %dm + %dr + %da\n", km, kr, ka);
200 Fp12::Dbl::mul_Fp2_024_Fp2_024(e,
l,
l);