+ vec4 x = INPUT(tc);
+
+ // We could reasonably get values outside (0.0, 1.0), but the formulas below
+ // are not valid outside that range, so clamp before we do anything else.
+ x.rgb = clamp(x.rgb, 0.0, 1.0);
+
+ vec3 a = x.rgb * PREFIX(linear_scale);
+
+ // Fourth-order polynomial approximation to pow(). See the .cpp file for details.
+ vec3 s = sqrt(x.rgb);
+ vec3 b = PREFIX(c)[0] + (PREFIX(c)[1] + (PREFIX(c)[2] + (PREFIX(c)[3] + PREFIX(c)[4] * s) * s) * s) * s;