\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 r632045 = x;
double r632046 = 18.0;
double r632047 = r632045 * r632046;
double r632048 = y;
double r632049 = r632047 * r632048;
double r632050 = z;
double r632051 = r632049 * r632050;
double r632052 = t;
double r632053 = r632051 * r632052;
double r632054 = a;
double r632055 = 4.0;
double r632056 = r632054 * r632055;
double r632057 = r632056 * r632052;
double r632058 = r632053 - r632057;
double r632059 = b;
double r632060 = c;
double r632061 = r632059 * r632060;
double r632062 = r632058 + r632061;
double r632063 = r632045 * r632055;
double r632064 = i;
double r632065 = r632063 * r632064;
double r632066 = r632062 - r632065;
double r632067 = j;
double r632068 = 27.0;
double r632069 = r632067 * r632068;
double r632070 = k;
double r632071 = r632069 * r632070;
double r632072 = r632066 - r632071;
return r632072;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r632073 = t;
double r632074 = x;
double r632075 = 18.0;
double r632076 = r632074 * r632075;
double r632077 = y;
double r632078 = r632076 * r632077;
double r632079 = z;
double r632080 = r632078 * r632079;
double r632081 = a;
double r632082 = 4.0;
double r632083 = r632081 * r632082;
double r632084 = r632080 - r632083;
double r632085 = r632073 * r632084;
double r632086 = b;
double r632087 = c;
double r632088 = r632086 * r632087;
double r632089 = r632074 * r632082;
double r632090 = i;
double r632091 = r632089 * r632090;
double r632092 = r632088 - r632091;
double r632093 = r632085 + r632092;
double r632094 = j;
double r632095 = 27.0;
double r632096 = k;
double r632097 = r632095 * r632096;
double r632098 = r632094 * r632097;
double r632099 = r632093 - r632098;
return r632099;
}




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.8 |
|---|---|
| Target | 1.7 |
| Herbie | 5.8 |
if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0Initial program 64.0
rmApplied associate-*l*36.0
rmApplied associate-*l*35.7
rmApplied associate-*l*35.3
rmApplied associate-*l*5.1
if -inf.0 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 3.4634505079290412e+171Initial program 0.3
rmApplied associate-*l*0.4
if 3.4634505079290412e+171 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) Initial program 11.3
rmApplied associate-*l*10.2
rmApplied associate-*l*10.2
rmApplied associate-*l*10.3
rmApplied associate-*l*10.3
Final simplification5.8
herbie shell --seed 2019294
(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)))