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 -2.579613563212042932975206509009832764606 \cdot 10^{-257}:\\
\;\;\;\;x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0:\\
\;\;\;\;t + y \cdot \left(\frac{x}{z} - \frac{t}{z}\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r19131640 = x;
double r19131641 = y;
double r19131642 = z;
double r19131643 = r19131641 - r19131642;
double r19131644 = t;
double r19131645 = r19131644 - r19131640;
double r19131646 = a;
double r19131647 = r19131646 - r19131642;
double r19131648 = r19131645 / r19131647;
double r19131649 = r19131643 * r19131648;
double r19131650 = r19131640 + r19131649;
return r19131650;
}
double f(double x, double y, double z, double t, double a) {
double r19131651 = x;
double r19131652 = y;
double r19131653 = z;
double r19131654 = r19131652 - r19131653;
double r19131655 = t;
double r19131656 = r19131655 - r19131651;
double r19131657 = a;
double r19131658 = r19131657 - r19131653;
double r19131659 = r19131656 / r19131658;
double r19131660 = r19131654 * r19131659;
double r19131661 = r19131651 + r19131660;
double r19131662 = -2.579613563212043e-257;
bool r19131663 = r19131661 <= r19131662;
double r19131664 = cbrt(r19131658);
double r19131665 = r19131664 * r19131664;
double r19131666 = r19131654 / r19131665;
double r19131667 = r19131656 / r19131664;
double r19131668 = r19131666 * r19131667;
double r19131669 = r19131651 + r19131668;
double r19131670 = 0.0;
bool r19131671 = r19131661 <= r19131670;
double r19131672 = r19131651 / r19131653;
double r19131673 = r19131655 / r19131653;
double r19131674 = r19131672 - r19131673;
double r19131675 = r19131652 * r19131674;
double r19131676 = r19131655 + r19131675;
double r19131677 = cbrt(r19131654);
double r19131678 = r19131677 * r19131677;
double r19131679 = r19131678 / r19131664;
double r19131680 = r19131677 / r19131664;
double r19131681 = r19131680 * r19131667;
double r19131682 = r19131679 * r19131681;
double r19131683 = r19131651 + r19131682;
double r19131684 = r19131671 ? r19131676 : r19131683;
double r19131685 = r19131663 ? r19131669 : r19131684;
return r19131685;
}



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)))) < -2.579613563212043e-257Initial program 6.9
rmApplied add-cube-cbrt7.6
Applied *-un-lft-identity7.6
Applied times-frac7.6
Applied associate-*r*5.0
Simplified5.0
if -2.579613563212043e-257 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 59.4
rmApplied add-cube-cbrt59.1
Applied *-un-lft-identity59.1
Applied times-frac59.1
Applied associate-*r*57.2
Simplified57.2
rmApplied add-cube-cbrt57.5
Applied times-frac57.5
Applied associate-*l*57.5
rmApplied add-cube-cbrt57.3
Applied associate-*r*57.3
Taylor expanded around inf 26.9
Simplified21.6
if 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.6
rmApplied add-cube-cbrt8.3
Applied *-un-lft-identity8.3
Applied times-frac8.3
Applied associate-*r*4.7
Simplified4.7
rmApplied add-cube-cbrt4.6
Applied times-frac4.6
Applied associate-*l*4.5
Final simplification7.1
herbie shell --seed 2019173
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))