fn mul(a: &Self::BaseType, b: &Self::BaseType) -> Self::BaseType {
        [&a[0] * &b[0] - &a[1] * &b[1], &a[0] * &b[1] + &a[1] * &b[0]]
    }
Returns the multiplication of `a` and `b` using the following
equation:
(a0 + a1 * u) * (b0 + b1 * u) = a0 * b0 + a1 * b1 * residue() + (a0 * b1 + a1 * b0) * u
where `u.pow(2)` equals `residue()`.
crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs