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.294617881327087 \cdot 10^{-290} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\right):\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\left(\sqrt[3]{\sqrt[3]{y - z}} \cdot \sqrt[3]{\sqrt[3]{y - z}}\right) \cdot \sqrt[3]{\sqrt[3]{y - z}}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r183197 = x;
double r183198 = y;
double r183199 = z;
double r183200 = r183198 - r183199;
double r183201 = t;
double r183202 = r183201 - r183197;
double r183203 = a;
double r183204 = r183203 - r183199;
double r183205 = r183202 / r183204;
double r183206 = r183200 * r183205;
double r183207 = r183197 + r183206;
return r183207;
}
double f(double x, double y, double z, double t, double a) {
double r183208 = x;
double r183209 = y;
double r183210 = z;
double r183211 = r183209 - r183210;
double r183212 = t;
double r183213 = r183212 - r183208;
double r183214 = a;
double r183215 = r183214 - r183210;
double r183216 = r183213 / r183215;
double r183217 = r183211 * r183216;
double r183218 = r183208 + r183217;
double r183219 = -3.294617881327087e-290;
bool r183220 = r183218 <= r183219;
double r183221 = 0.0;
bool r183222 = r183218 <= r183221;
double r183223 = !r183222;
bool r183224 = r183220 || r183223;
double r183225 = cbrt(r183211);
double r183226 = r183225 * r183225;
double r183227 = cbrt(r183215);
double r183228 = r183226 / r183227;
double r183229 = cbrt(r183225);
double r183230 = r183229 * r183229;
double r183231 = r183230 * r183229;
double r183232 = r183231 / r183227;
double r183233 = r183213 / r183227;
double r183234 = r183232 * r183233;
double r183235 = r183228 * r183234;
double r183236 = r183208 + r183235;
double r183237 = r183208 / r183210;
double r183238 = r183212 / r183210;
double r183239 = r183237 - r183238;
double r183240 = r183209 * r183239;
double r183241 = r183240 + r183212;
double r183242 = r183224 ? r183236 : r183241;
return r183242;
}



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.294617881327087e-290 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.4
rmApplied add-cube-cbrt8.0
Applied *-un-lft-identity8.0
Applied times-frac8.0
Applied associate-*r*5.1
Simplified5.1
rmApplied add-cube-cbrt4.9
Applied times-frac5.0
Applied associate-*l*4.6
rmApplied add-cube-cbrt5.0
if -3.294617881327087e-290 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.0
rmApplied add-cube-cbrt60.8
Applied *-un-lft-identity60.8
Applied times-frac60.8
Applied associate-*r*60.3
Simplified60.3
rmApplied add-cube-cbrt60.5
Applied times-frac60.4
Applied associate-*l*60.4
Taylor expanded around inf 26.0
Simplified20.7
Final simplification7.2
herbie shell --seed 2020056
(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)))))