fn mul(a: &Self::BaseType, b: &Self::BaseType) -> Self::BaseType {
        [
            a[0] * b[0] - BETA * (a[1] * b[3] + a[3] * b[1] + a[2] * b[2]),
            a[0] * b[1] + a[1] * b[0] - BETA * (a[2] * b[3] + a[3] * b[2]),
            a[0] * b[2] + a[2] * b[0] + a[1] * b[1] - BETA * (a[3] * b[3]),
            a[0] * b[3] + a[3] * b[0] + a[1] * b[2] + a[2] * b[1],
        ]
    }
Result of multiplying two polynomials a = a0 + a1 * x + a2 * x^2 + a3 * x^3 and
b = b0 + b1 * x + b2 * x^2 + b3 * x^3 by applying distribution and taking
the remainder of the division by x^4 + 11.
Multiplication of two degree four field extension elements
crates/math/src/field/fields/fft_friendly/quartic_babybear_u32.rs