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 -3.3728247353674194 \cdot 10^{-295} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\right):\\
\;\;\;\;x + \frac{\frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z}}} \cdot \left(\frac{\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\
\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 r127631 = x;
double r127632 = y;
double r127633 = z;
double r127634 = r127632 - r127633;
double r127635 = t;
double r127636 = r127635 - r127631;
double r127637 = a;
double r127638 = r127637 - r127633;
double r127639 = r127636 / r127638;
double r127640 = r127634 * r127639;
double r127641 = r127631 + r127640;
return r127641;
}
double f(double x, double y, double z, double t, double a) {
double r127642 = x;
double r127643 = y;
double r127644 = z;
double r127645 = r127643 - r127644;
double r127646 = t;
double r127647 = r127646 - r127642;
double r127648 = a;
double r127649 = r127648 - r127644;
double r127650 = r127647 / r127649;
double r127651 = r127645 * r127650;
double r127652 = r127642 + r127651;
double r127653 = -3.3728247353674194e-295;
bool r127654 = r127652 <= r127653;
double r127655 = 0.0;
bool r127656 = r127652 <= r127655;
double r127657 = !r127656;
bool r127658 = r127654 || r127657;
double r127659 = cbrt(r127645);
double r127660 = r127659 * r127659;
double r127661 = cbrt(r127649);
double r127662 = r127660 / r127661;
double r127663 = cbrt(r127661);
double r127664 = r127662 / r127663;
double r127665 = r127659 / r127661;
double r127666 = r127665 / r127663;
double r127667 = r127647 / r127663;
double r127668 = r127666 * r127667;
double r127669 = r127664 * r127668;
double r127670 = r127642 + r127669;
double r127671 = r127642 * r127643;
double r127672 = r127671 / r127644;
double r127673 = r127672 + r127646;
double r127674 = r127646 * r127643;
double r127675 = r127674 / r127644;
double r127676 = r127673 - r127675;
double r127677 = r127658 ? r127670 : r127676;
return r127677;
}



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.3728247353674194e-295 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.2
rmApplied add-cube-cbrt7.9
Applied *-un-lft-identity7.9
Applied times-frac7.9
Applied associate-*r*5.3
Simplified5.3
rmApplied add-cube-cbrt5.5
Applied *-un-lft-identity5.5
Applied times-frac5.5
Applied associate-*r*5.3
Simplified5.3
rmApplied add-cube-cbrt5.2
Applied times-frac5.2
Applied times-frac5.2
Applied associate-*l*4.7
if -3.3728247353674194e-295 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.4
Taylor expanded around inf 25.7
Final simplification7.6
herbie shell --seed 2020100
(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)))))