ossl_gf_mul
ossl_gf_mul(cs, as, as); /* Performs better with a dedicated square */
ossl_gf_mul(e->t, e->y, eu);
ossl_gf_mul(e->x, d->z, e->y);
ossl_gf_mul(e->y, d->z, eu);
ossl_gf_mul(e->t, e->y, e->x);
ossl_gf_mul(a, e->a, b);
ossl_gf_mul(d->y, e->b, b);
ossl_gf_mul(d->x, e->c, d->t);
ossl_gf_mul(d->z, a, d->y);
ossl_gf_mul(d->x, d->y, b);
ossl_gf_mul(d->y, a, c);
ossl_gf_mul(d->t, b, c);
ossl_gf_mul(a, e->b, b);
ossl_gf_mul(d->y, e->a, b);
ossl_gf_mul(d->x, e->c, d->t);
ossl_gf_mul(d->z, a, d->y);
ossl_gf_mul(d->x, d->y, b);
ossl_gf_mul(d->y, a, c);
ossl_gf_mul(d->t, b, c);
ossl_gf_mul(L0, p->z, pn->z);
ossl_gf_mul(L0, p->z, pn->z);
ossl_gf_mul(a, p->y, q->x);
ossl_gf_mul(b, q->y, p->x);
ossl_gf_mul(a, p->x, p->y);
ossl_gf_mul(b, p->z, p->t);
ossl_gf_mul(x, t, y);
ossl_gf_mul(y, z, u);
ossl_gf_mul(z, u, t);
ossl_gf_mul(t, x, z);
ossl_gf_mul(x, y, z);
ossl_gf_mul(p->x, p->z, p->t);
ossl_gf_mul(p->x, p->t, p->z); /* sqrt(num / denom) */
ossl_gf_mul(p->x, a, b);
ossl_gf_mul(p->z, p->t, a);
ossl_gf_mul(p->y, p->t, d);
ossl_gf_mul(p->t, b, d);
ossl_gf_mul(x2, t1, z2); /* DA */
ossl_gf_mul(x3, t2, z2); /* CB */
ossl_gf_mul(z3, x1, z2); /* z3 = x1(DA-CB)^2 */
ossl_gf_mul(x2, z2, t1); /* x2 = AA*BB */
ossl_gf_mul(z2, t2, t1); /* z2 = E(AA+a24*E) */
ossl_gf_mul(x1, x2, z2);
ossl_gf_mul(q->z, q->t, q->y); /* y/x */
ossl_gf_mul(t2, t1, x); /* not direct to y in case of alias. */
ossl_gf_mul(p->x, a, b);
ossl_gf_mul(p->z, p->t, a);
ossl_gf_mul(p->y, p->t, d);
ossl_gf_mul(p->t, b, d);
ossl_gf_mul(L2, x, L1);
ossl_gf_mul(L2, x, L1);
ossl_gf_mul(L0, L2, L1);
ossl_gf_mul(L0, L2, L1);
ossl_gf_mul(L1, L0, L2);
ossl_gf_mul(L2, x, L0);
ossl_gf_mul(L2, L1, L0);
ossl_gf_mul(L1, L2, L0);
ossl_gf_mul(L1, L2, L0);
ossl_gf_mul(L2, L1, L0);
ossl_gf_mul(L1, x, L0);
ossl_gf_mul(L1, L2, L0);
ossl_gf_mul(L0, L2, x);
void ossl_gf_mul(gf_s *RESTRICT out, const gf a, const gf b);