\frac{x \cdot 2}{y \cdot z - t \cdot z}\frac{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\frac{\sqrt[3]{y - t} \cdot \sqrt[3]{y - t}}{\sqrt{2}}}}{z} \cdot \frac{\sqrt[3]{x}}{\frac{\sqrt[3]{y - t}}{\sqrt{2}}}double f(double x, double y, double z, double t) {
double r539123 = x;
double r539124 = 2.0;
double r539125 = r539123 * r539124;
double r539126 = y;
double r539127 = z;
double r539128 = r539126 * r539127;
double r539129 = t;
double r539130 = r539129 * r539127;
double r539131 = r539128 - r539130;
double r539132 = r539125 / r539131;
return r539132;
}
double f(double x, double y, double z, double t) {
double r539133 = x;
double r539134 = cbrt(r539133);
double r539135 = r539134 * r539134;
double r539136 = y;
double r539137 = t;
double r539138 = r539136 - r539137;
double r539139 = cbrt(r539138);
double r539140 = r539139 * r539139;
double r539141 = 2.0;
double r539142 = sqrt(r539141);
double r539143 = r539140 / r539142;
double r539144 = r539135 / r539143;
double r539145 = z;
double r539146 = r539144 / r539145;
double r539147 = r539139 / r539142;
double r539148 = r539134 / r539147;
double r539149 = r539146 * r539148;
return r539149;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.7 |
|---|---|
| Target | 2.1 |
| Herbie | 1.8 |
Initial program 6.7
Simplified5.5
rmApplied *-un-lft-identity5.5
Applied times-frac5.5
Applied *-un-lft-identity5.5
Applied times-frac5.8
Simplified5.8
rmApplied add-sqr-sqrt6.3
Applied add-cube-cbrt6.5
Applied times-frac6.4
Applied add-cube-cbrt6.6
Applied times-frac6.6
Applied associate-*r*1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2020059 +o rules:numerics
(FPCore (x y z t)
:name "Linear.Projection:infinitePerspective from linear-1.19.1.3, A"
:precision binary64
:herbie-target
(if (< (/ (* x 2) (- (* y z) (* t z))) -2.559141628295061e-13) (* (/ x (* (- y t) z)) 2) (if (< (/ (* x 2) (- (* y z) (* t z))) 1.0450278273301259e-269) (/ (* (/ x z) 2) (- y t)) (* (/ x (* (- y t) z)) 2)))
(/ (* x 2) (- (* y z) (* t z))))