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 -5.434803235903865600499221827993269409084 \cdot 10^{-306} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\right):\\
\;\;\;\;x + \left(\left(y - z\right) \cdot \frac{\left(\left(\sqrt[3]{\sqrt[3]{t - x}} \cdot \sqrt[3]{\sqrt[3]{t - x}}\right) \cdot \sqrt[3]{\sqrt[3]{t - x}}\right) \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\
\mathbf{else}:\\
\;\;\;\;t + y \cdot \left(\frac{x}{z} - \frac{t}{z}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r106807 = x;
double r106808 = y;
double r106809 = z;
double r106810 = r106808 - r106809;
double r106811 = t;
double r106812 = r106811 - r106807;
double r106813 = a;
double r106814 = r106813 - r106809;
double r106815 = r106812 / r106814;
double r106816 = r106810 * r106815;
double r106817 = r106807 + r106816;
return r106817;
}
double f(double x, double y, double z, double t, double a) {
double r106818 = x;
double r106819 = y;
double r106820 = z;
double r106821 = r106819 - r106820;
double r106822 = t;
double r106823 = r106822 - r106818;
double r106824 = a;
double r106825 = r106824 - r106820;
double r106826 = r106823 / r106825;
double r106827 = r106821 * r106826;
double r106828 = r106818 + r106827;
double r106829 = -5.4348032359038656e-306;
bool r106830 = r106828 <= r106829;
double r106831 = 0.0;
bool r106832 = r106828 <= r106831;
double r106833 = !r106832;
bool r106834 = r106830 || r106833;
double r106835 = cbrt(r106823);
double r106836 = cbrt(r106835);
double r106837 = r106836 * r106836;
double r106838 = r106837 * r106836;
double r106839 = r106838 * r106835;
double r106840 = cbrt(r106825);
double r106841 = r106840 * r106840;
double r106842 = r106839 / r106841;
double r106843 = r106821 * r106842;
double r106844 = r106835 / r106840;
double r106845 = r106843 * r106844;
double r106846 = r106818 + r106845;
double r106847 = r106818 / r106820;
double r106848 = r106822 / r106820;
double r106849 = r106847 - r106848;
double r106850 = r106819 * r106849;
double r106851 = r106822 + r106850;
double r106852 = r106834 ? r106846 : r106851;
return r106852;
}



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)))) < -5.4348032359038656e-306 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.7
rmApplied add-cube-cbrt8.3
Applied add-cube-cbrt8.5
Applied times-frac8.5
Applied associate-*r*4.7
rmApplied add-cube-cbrt4.9
if -5.4348032359038656e-306 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.8
rmApplied add-cube-cbrt61.5
Applied add-cube-cbrt61.5
Applied times-frac61.4
Applied associate-*r*61.2
Taylor expanded around inf 24.8
Simplified19.1
Final simplification6.8
herbie shell --seed 1978988140
(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)))))