\left(\left(x - \frac{16}{116}\right) \cdot 3\right) \cdot y3 \cdot \left(\frac{-1}{\sqrt{\sqrt[3]{116} \cdot \sqrt[3]{116}}} \cdot \frac{y}{\frac{\sqrt{\sqrt[3]{116}}}{\frac{16}{\sqrt{116}}}} + x \cdot y\right)double f(double x, double y) {
double r700144 = x;
double r700145 = 16.0;
double r700146 = 116.0;
double r700147 = r700145 / r700146;
double r700148 = r700144 - r700147;
double r700149 = 3.0;
double r700150 = r700148 * r700149;
double r700151 = y;
double r700152 = r700150 * r700151;
return r700152;
}
double f(double x, double y) {
double r700153 = 3.0;
double r700154 = -1.0;
double r700155 = 116.0;
double r700156 = cbrt(r700155);
double r700157 = r700156 * r700156;
double r700158 = sqrt(r700157);
double r700159 = r700154 / r700158;
double r700160 = y;
double r700161 = sqrt(r700156);
double r700162 = 16.0;
double r700163 = sqrt(r700155);
double r700164 = r700162 / r700163;
double r700165 = r700161 / r700164;
double r700166 = r700160 / r700165;
double r700167 = r700159 * r700166;
double r700168 = x;
double r700169 = r700168 * r700160;
double r700170 = r700167 + r700169;
double r700171 = r700153 * r700170;
return r700171;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.4 |
Initial program 0.2
Simplified0.3
rmApplied sub-neg0.3
Applied distribute-lft-in0.3
Simplified0.3
Simplified0.3
rmApplied add-sqr-sqrt0.7
Applied *-un-lft-identity0.7
Applied times-frac0.3
Applied associate-*r*0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied sqrt-prod0.4
Applied *-un-lft-identity0.4
Applied distribute-lft-neg-in0.4
Applied times-frac0.4
Applied associate-*l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019174
(FPCore (x y)
:name "Data.Colour.CIE:cieLAB from colour-2.3.3, A"
:herbie-target
(* y (- (* x 3.0) 0.41379310344827586))
(* (* (- x (/ 16.0 116.0)) 3.0) y))