x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \frac{t - x}{a - z} \cdot \left(y - z\right) \le -3.0404789902267714 \cdot 10^{-273}:\\
\;\;\;\;\frac{\frac{\frac{\frac{y - z}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}}{\sqrt[3]{\sqrt[3]{a - z}}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}} + x\\
\mathbf{elif}\;x + \frac{t - x}{a - z} \cdot \left(y - z\right) \le 1.614867160905698 \cdot 10^{-291}:\\
\;\;\;\;\frac{x}{\frac{z}{y}} + \left(t - \frac{t}{\frac{z}{y}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{y - z}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}}{\sqrt[3]{\sqrt[3]{a - z}}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}} + x\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r7017280 = x;
double r7017281 = y;
double r7017282 = z;
double r7017283 = r7017281 - r7017282;
double r7017284 = t;
double r7017285 = r7017284 - r7017280;
double r7017286 = a;
double r7017287 = r7017286 - r7017282;
double r7017288 = r7017285 / r7017287;
double r7017289 = r7017283 * r7017288;
double r7017290 = r7017280 + r7017289;
return r7017290;
}
double f(double x, double y, double z, double t, double a) {
double r7017291 = x;
double r7017292 = t;
double r7017293 = r7017292 - r7017291;
double r7017294 = a;
double r7017295 = z;
double r7017296 = r7017294 - r7017295;
double r7017297 = r7017293 / r7017296;
double r7017298 = y;
double r7017299 = r7017298 - r7017295;
double r7017300 = r7017297 * r7017299;
double r7017301 = r7017291 + r7017300;
double r7017302 = -3.0404789902267714e-273;
bool r7017303 = r7017301 <= r7017302;
double r7017304 = cbrt(r7017296);
double r7017305 = r7017299 / r7017304;
double r7017306 = r7017304 * r7017304;
double r7017307 = cbrt(r7017306);
double r7017308 = r7017305 / r7017307;
double r7017309 = cbrt(r7017304);
double r7017310 = r7017308 / r7017309;
double r7017311 = r7017310 / r7017307;
double r7017312 = r7017293 / r7017309;
double r7017313 = r7017311 * r7017312;
double r7017314 = r7017313 + r7017291;
double r7017315 = 1.614867160905698e-291;
bool r7017316 = r7017301 <= r7017315;
double r7017317 = r7017295 / r7017298;
double r7017318 = r7017291 / r7017317;
double r7017319 = r7017292 / r7017317;
double r7017320 = r7017292 - r7017319;
double r7017321 = r7017318 + r7017320;
double r7017322 = r7017316 ? r7017321 : r7017314;
double r7017323 = r7017303 ? r7017314 : r7017322;
return r7017323;
}



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)))) < -3.0404789902267714e-273 or 1.614867160905698e-291 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.1
rmApplied add-cube-cbrt7.8
Applied *-un-lft-identity7.8
Applied times-frac7.8
Applied associate-*r*5.2
Simplified5.2
rmApplied add-cube-cbrt5.2
Applied cbrt-prod5.3
rmApplied add-cube-cbrt5.4
Applied cbrt-prod5.5
Applied *-un-lft-identity5.5
Applied times-frac5.5
Applied associate-*r*5.2
Simplified5.2
if -3.0404789902267714e-273 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 1.614867160905698e-291Initial program 59.3
rmApplied add-cube-cbrt59.1
Applied *-un-lft-identity59.1
Applied times-frac59.1
Applied associate-*r*56.8
Simplified56.9
rmApplied add-cube-cbrt56.9
Applied cbrt-prod56.8
Taylor expanded around inf 26.7
Simplified22.8
Final simplification7.6
herbie shell --seed 2019163
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))