\left(\left(x - \frac{16}{116}\right) \cdot 3\right) \cdot y\left(\left(\left(x - \frac{16}{116}\right) \cdot \left({\left(\sqrt[3]{3}\right)}^{2} \cdot \sqrt[3]{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right)\right) \cdot \sqrt[3]{\sqrt[3]{3}}\right) \cdot ydouble f(double x, double y) {
double r891444 = x;
double r891445 = 16.0;
double r891446 = 116.0;
double r891447 = r891445 / r891446;
double r891448 = r891444 - r891447;
double r891449 = 3.0;
double r891450 = r891448 * r891449;
double r891451 = y;
double r891452 = r891450 * r891451;
return r891452;
}
double f(double x, double y) {
double r891453 = x;
double r891454 = 16.0;
double r891455 = 116.0;
double r891456 = r891454 / r891455;
double r891457 = r891453 - r891456;
double r891458 = 3.0;
double r891459 = cbrt(r891458);
double r891460 = 2.0;
double r891461 = pow(r891459, r891460);
double r891462 = r891459 * r891459;
double r891463 = cbrt(r891462);
double r891464 = r891461 * r891463;
double r891465 = r891457 * r891464;
double r891466 = cbrt(r891459);
double r891467 = r891465 * r891466;
double r891468 = y;
double r891469 = r891467 * r891468;
return r891469;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.2
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.8
rmApplied add-cube-cbrt0.8
Applied cbrt-prod0.8
Applied associate-*r*0.7
Simplified0.2
Final simplification0.2
herbie shell --seed 2020001
(FPCore (x y)
:name "Data.Colour.CIE:cieLAB from colour-2.3.3, A"
:precision binary64
:herbie-target
(* y (- (* x 3) 0.41379310344827586))
(* (* (- x (/ 16 116)) 3) y))