\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(x \cdot 4\right) \cdot i\right)\right) - j \cdot \left(27 \cdot k\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r604372 = x;
double r604373 = 18.0;
double r604374 = r604372 * r604373;
double r604375 = y;
double r604376 = r604374 * r604375;
double r604377 = z;
double r604378 = r604376 * r604377;
double r604379 = t;
double r604380 = r604378 * r604379;
double r604381 = a;
double r604382 = 4.0;
double r604383 = r604381 * r604382;
double r604384 = r604383 * r604379;
double r604385 = r604380 - r604384;
double r604386 = b;
double r604387 = c;
double r604388 = r604386 * r604387;
double r604389 = r604385 + r604388;
double r604390 = r604372 * r604382;
double r604391 = i;
double r604392 = r604390 * r604391;
double r604393 = r604389 - r604392;
double r604394 = j;
double r604395 = 27.0;
double r604396 = r604394 * r604395;
double r604397 = k;
double r604398 = r604396 * r604397;
double r604399 = r604393 - r604398;
return r604399;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r604400 = t;
double r604401 = x;
double r604402 = 18.0;
double r604403 = r604401 * r604402;
double r604404 = y;
double r604405 = r604403 * r604404;
double r604406 = z;
double r604407 = r604405 * r604406;
double r604408 = a;
double r604409 = 4.0;
double r604410 = r604408 * r604409;
double r604411 = r604407 - r604410;
double r604412 = r604400 * r604411;
double r604413 = b;
double r604414 = c;
double r604415 = r604413 * r604414;
double r604416 = r604401 * r604409;
double r604417 = i;
double r604418 = r604416 * r604417;
double r604419 = r604415 - r604418;
double r604420 = r604412 + r604419;
double r604421 = j;
double r604422 = 27.0;
double r604423 = k;
double r604424 = r604422 * r604423;
double r604425 = r604421 * r604424;
double r604426 = r604420 - r604425;
return r604426;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b




Bits error versus c




Bits error versus i




Bits error versus j




Bits error versus k
Results
| Original | 5.6 |
|---|---|
| Target | 1.5 |
| Herbie | 5.6 |
if t < -4.3830139062668545e+58Initial program 1.4
rmApplied associate-*l*1.3
if -4.3830139062668545e+58 < t < 3.6462011735036985e+44Initial program 7.2
rmApplied associate-*l*4.4
if 3.6462011735036985e+44 < t Initial program 1.8
rmApplied associate-*l*2.0
Final simplification5.6
herbie shell --seed 2019303
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, E"
:precision binary64
:herbie-target
(if (< t -1.6210815397541398e-69) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b))) (if (< t 165.680279438052224) (+ (- (* (* 18 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4)) (- (* c b) (* 27 (* k j)))) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b)))))
(- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))