// Multiply by xi=i+3 which is used to construct F_p^6 // (a*i + b)*(i + 3) = (3*b - 1*a) + (3*a + b)*i void fp2e_mulxi_c(fp2e_t rop, const fp2e_t op) { fpe_t a, b, t1, t2, t3, t4, t5; fp2e_to_2fpe(a, b, op); int i; for (i = 0; i < 12; i++) { t1->v[i] = 3 * a->v[i]; // t1 = 3*a t2->v[i] = 3 * b->v[i]; // t2 = 3*b t3->v[i] = 1 * a->v[i]; // t3 = 1*a } fpe_add(t4, t1, b); // t4 = 3*a + b fpe_sub(t5, t2, t3); // t5 = 3*b - 1*a _2fpe_to_fp2e(rop, t4, t5); }
int fpe_iseq(const fpe_t op1, const fpe_t op2) { fpe_t t; fpe_sub(t, op1, op2); return fpe_iszero(t); }