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 -1.3435650229451346 \cdot 10^{-276}:\\
\;\;\;\;x + \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}} \cdot \frac{y - z}{\frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}} \cdot \frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}}}\\
\mathbf{elif}\;x + \frac{t - x}{a - z} \cdot \left(y - z\right) \le 0.0:\\
\;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\
\mathbf{else}:\\
\;\;\;\;\frac{t - x}{\sqrt[3]{a - z}} \cdot \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} + x\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r6853993 = x;
double r6853994 = y;
double r6853995 = z;
double r6853996 = r6853994 - r6853995;
double r6853997 = t;
double r6853998 = r6853997 - r6853993;
double r6853999 = a;
double r6854000 = r6853999 - r6853995;
double r6854001 = r6853998 / r6854000;
double r6854002 = r6853996 * r6854001;
double r6854003 = r6853993 + r6854002;
return r6854003;
}
double f(double x, double y, double z, double t, double a) {
double r6854004 = x;
double r6854005 = t;
double r6854006 = r6854005 - r6854004;
double r6854007 = a;
double r6854008 = z;
double r6854009 = r6854007 - r6854008;
double r6854010 = r6854006 / r6854009;
double r6854011 = y;
double r6854012 = r6854011 - r6854008;
double r6854013 = r6854010 * r6854012;
double r6854014 = r6854004 + r6854013;
double r6854015 = -1.3435650229451346e-276;
bool r6854016 = r6854014 <= r6854015;
double r6854017 = cbrt(r6854006);
double r6854018 = cbrt(r6854009);
double r6854019 = r6854017 / r6854018;
double r6854020 = r6854018 / r6854017;
double r6854021 = r6854020 * r6854020;
double r6854022 = r6854012 / r6854021;
double r6854023 = r6854019 * r6854022;
double r6854024 = r6854004 + r6854023;
double r6854025 = 0.0;
bool r6854026 = r6854014 <= r6854025;
double r6854027 = r6854004 / r6854008;
double r6854028 = r6854005 / r6854008;
double r6854029 = r6854027 - r6854028;
double r6854030 = r6854011 * r6854029;
double r6854031 = r6854030 + r6854005;
double r6854032 = r6854006 / r6854018;
double r6854033 = r6854018 * r6854018;
double r6854034 = r6854012 / r6854033;
double r6854035 = r6854032 * r6854034;
double r6854036 = r6854035 + r6854004;
double r6854037 = r6854026 ? r6854031 : r6854036;
double r6854038 = r6854016 ? r6854024 : r6854037;
return r6854038;
}



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)))) < -1.3435650229451346e-276Initial program 6.9
rmApplied add-cube-cbrt7.6
Applied *-un-lft-identity7.6
Applied times-frac7.6
Applied associate-*r*5.0
Simplified5.0
rmApplied *-un-lft-identity5.0
Applied cbrt-prod5.0
Applied add-cube-cbrt5.2
Applied times-frac5.2
Applied associate-*r*4.6
Simplified4.6
if -1.3435650229451346e-276 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 60.6
rmApplied add-cube-cbrt60.5
Applied *-un-lft-identity60.5
Applied times-frac60.4
Applied associate-*r*59.3
Simplified59.3
rmApplied add-cube-cbrt59.2
Applied associate-*l*59.2
Taylor expanded around inf 24.7
Simplified20.3
if 0.0 < (+ 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*4.8
Simplified4.8
Final simplification6.9
herbie shell --seed 2019162
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))