\frac{x - y}{z - y} \cdot t\begin{array}{l}
\mathbf{if}\;y \le -5.886890747873425551727597679723315342598 \cdot 10^{-305} \lor \neg \left(y \le 2.653973602534843579162682730306192225397 \cdot 10^{-190}\right):\\
\;\;\;\;\left(\frac{x}{z - y} - \frac{y}{z - y}\right) \cdot t\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z - y} \cdot \left(\left(x - y\right) \cdot \sqrt[3]{t}\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r265049 = x;
double r265050 = y;
double r265051 = r265049 - r265050;
double r265052 = z;
double r265053 = r265052 - r265050;
double r265054 = r265051 / r265053;
double r265055 = t;
double r265056 = r265054 * r265055;
return r265056;
}
double f(double x, double y, double z, double t) {
double r265057 = y;
double r265058 = -5.886890747873426e-305;
bool r265059 = r265057 <= r265058;
double r265060 = 2.6539736025348436e-190;
bool r265061 = r265057 <= r265060;
double r265062 = !r265061;
bool r265063 = r265059 || r265062;
double r265064 = x;
double r265065 = z;
double r265066 = r265065 - r265057;
double r265067 = r265064 / r265066;
double r265068 = r265057 / r265066;
double r265069 = r265067 - r265068;
double r265070 = t;
double r265071 = r265069 * r265070;
double r265072 = cbrt(r265070);
double r265073 = r265072 * r265072;
double r265074 = r265073 / r265066;
double r265075 = r265064 - r265057;
double r265076 = r265075 * r265072;
double r265077 = r265074 * r265076;
double r265078 = r265063 ? r265071 : r265077;
return r265078;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.1 |
|---|---|
| Target | 2.1 |
| Herbie | 1.9 |
if y < -5.886890747873426e-305 or 2.6539736025348436e-190 < y Initial program 1.6
rmApplied div-sub1.6
if -5.886890747873426e-305 < y < 2.6539736025348436e-190Initial program 7.0
rmApplied clear-num7.2
rmApplied *-un-lft-identity7.2
Applied add-sqr-sqrt7.2
Applied times-frac7.2
Applied associate-*l*7.2
Simplified6.8
rmApplied div-inv6.8
Applied add-cube-cbrt7.6
Applied times-frac4.7
Simplified4.7
Final simplification1.9
herbie shell --seed 2019347 +o rules:numerics
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cput from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(/ t (/ (- z y) (- x y)))
(* (/ (- x y) (- z y)) t))