\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
\begin{array}{l}
\mathbf{if}\;t \le 3.109405208337589429613705910964062865937 \cdot 10^{-73}:\\
\;\;\;\;\left(x \cdot 2 - y \cdot \left(\left(z \cdot 9\right) \cdot t\right)\right) + \left(a \cdot 27\right) \cdot b\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot \left(z \cdot 9\right)\right) \cdot t\right) + 27 \cdot \left(a \cdot b\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r509214 = x;
double r509215 = 2.0;
double r509216 = r509214 * r509215;
double r509217 = y;
double r509218 = 9.0;
double r509219 = r509217 * r509218;
double r509220 = z;
double r509221 = r509219 * r509220;
double r509222 = t;
double r509223 = r509221 * r509222;
double r509224 = r509216 - r509223;
double r509225 = a;
double r509226 = 27.0;
double r509227 = r509225 * r509226;
double r509228 = b;
double r509229 = r509227 * r509228;
double r509230 = r509224 + r509229;
return r509230;
}
double f(double x, double y, double z, double t, double a, double b) {
double r509231 = t;
double r509232 = 3.1094052083375894e-73;
bool r509233 = r509231 <= r509232;
double r509234 = x;
double r509235 = 2.0;
double r509236 = r509234 * r509235;
double r509237 = y;
double r509238 = z;
double r509239 = 9.0;
double r509240 = r509238 * r509239;
double r509241 = r509240 * r509231;
double r509242 = r509237 * r509241;
double r509243 = r509236 - r509242;
double r509244 = a;
double r509245 = 27.0;
double r509246 = r509244 * r509245;
double r509247 = b;
double r509248 = r509246 * r509247;
double r509249 = r509243 + r509248;
double r509250 = r509237 * r509240;
double r509251 = r509250 * r509231;
double r509252 = r509236 - r509251;
double r509253 = r509244 * r509247;
double r509254 = r509245 * r509253;
double r509255 = r509252 + r509254;
double r509256 = r509233 ? r509249 : r509255;
return r509256;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 3.6 |
|---|---|
| Target | 2.6 |
| Herbie | 2.1 |
if t < 3.1094052083375894e-73Initial program 4.6
rmApplied associate-*l*4.6
Simplified4.6
rmApplied associate-*l*2.5
if 3.1094052083375894e-73 < t Initial program 1.1
rmApplied associate-*l*1.1
Simplified1.1
Taylor expanded around 0 1.0
Final simplification2.1
herbie shell --seed 2019326
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))
(+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))