x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -7.3047628103401992 \cdot 10^{-308} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\right):\\
\;\;\;\;x + \left(\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{\sqrt[3]{a - z}}}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r129271 = x;
double r129272 = y;
double r129273 = z;
double r129274 = r129272 - r129273;
double r129275 = t;
double r129276 = r129275 - r129271;
double r129277 = a;
double r129278 = r129277 - r129273;
double r129279 = r129276 / r129278;
double r129280 = r129274 * r129279;
double r129281 = r129271 + r129280;
return r129281;
}
double f(double x, double y, double z, double t, double a) {
double r129282 = x;
double r129283 = y;
double r129284 = z;
double r129285 = r129283 - r129284;
double r129286 = t;
double r129287 = r129286 - r129282;
double r129288 = a;
double r129289 = r129288 - r129284;
double r129290 = r129287 / r129289;
double r129291 = r129285 * r129290;
double r129292 = r129282 + r129291;
double r129293 = -7.304762810340199e-308;
bool r129294 = r129292 <= r129293;
double r129295 = 0.0;
bool r129296 = r129292 <= r129295;
double r129297 = !r129296;
bool r129298 = r129294 || r129297;
double r129299 = cbrt(r129289);
double r129300 = r129299 * r129299;
double r129301 = r129285 / r129300;
double r129302 = cbrt(r129287);
double r129303 = r129302 * r129302;
double r129304 = cbrt(r129300);
double r129305 = r129303 / r129304;
double r129306 = r129301 * r129305;
double r129307 = cbrt(r129299);
double r129308 = r129302 / r129307;
double r129309 = r129306 * r129308;
double r129310 = r129282 + r129309;
double r129311 = r129282 * r129283;
double r129312 = r129311 / r129284;
double r129313 = r129312 + r129286;
double r129314 = r129286 * r129283;
double r129315 = r129314 / r129284;
double r129316 = r129313 - r129315;
double r129317 = r129298 ? r129310 : r129316;
return r129317;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+ x (* (- y z) (/ (- t x) (- a z)))) < -7.304762810340199e-308 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.5
rmApplied add-cube-cbrt8.1
Applied *-un-lft-identity8.1
Applied times-frac8.2
Applied associate-*r*5.0
Simplified5.0
rmApplied add-cube-cbrt5.1
Applied cbrt-prod5.1
Applied add-cube-cbrt5.3
Applied times-frac5.3
Applied associate-*r*4.6
if -7.304762810340199e-308 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.8
Taylor expanded around inf 25.8
Final simplification7.4
herbie shell --seed 2020064
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
:precision binary64
(+ x (* (- y z) (/ (- t x) (- a z)))))