uniform half4 color;

half add(half a, half b) {
    half c = a + b;
    return c;
}

half mul(half a, half b) {
    return a * b;
}

half fused_multiply_add(half a, half b, half c) {
    return add(mul(a, b), c);
}

half4 main(float2 coords) {
    half a = fused_multiply_add(color.x, color.y, color.z);
    half b = fused_multiply_add(color.y, color.z, color.w);
    half c = fused_multiply_add(color.z, color.w, color.x);
    return half4(a, b, mul(c, c), mul(a, mul(b, c)));
}
