x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\left(x1 + \left(\sqrt[3]{\frac{\left(x1 \cdot x1\right) \cdot 3}{\frac{x1 \cdot x1 + 1}{\left(x1 \cdot x1\right) \cdot 3 + \left(x2 \cdot 2 - x1\right)}}} \cdot \sqrt[3]{\frac{\left(x1 \cdot x1\right) \cdot 3}{\frac{x1 \cdot x1 + 1}{\left(x1 \cdot x1\right) \cdot 3 + \left(x2 \cdot 2 - x1\right)}}}\right) \cdot \sqrt[3]{\frac{\left(x1 \cdot x1\right) \cdot 3}{\frac{x1 \cdot x1 + 1}{\left(x1 \cdot x1\right) \cdot 3 + \left(x2 \cdot 2 - x1\right)}}}\right) + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(\left(x1 \cdot x1\right) \cdot -6 + x1\right) + \frac{\left(x1 \cdot x1\right) \cdot 3 + \left(x2 \cdot 2 - x1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(\left(\frac{\left(x1 \cdot x1\right) \cdot 3 + \left(x2 \cdot 2 - x1\right)}{x1 \cdot x1 + 1} - 3\right) \cdot 2\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + \frac{-2 \cdot x2 + \left(\left(x1 \cdot x1\right) \cdot 3 - x1\right)}{x1 \cdot x1 + 1} \cdot 3\right)double f(double x1, double x2) {
double r2820321 = x1;
double r2820322 = 2.0;
double r2820323 = r2820322 * r2820321;
double r2820324 = 3.0;
double r2820325 = r2820324 * r2820321;
double r2820326 = r2820325 * r2820321;
double r2820327 = x2;
double r2820328 = r2820322 * r2820327;
double r2820329 = r2820326 + r2820328;
double r2820330 = r2820329 - r2820321;
double r2820331 = r2820321 * r2820321;
double r2820332 = 1.0;
double r2820333 = r2820331 + r2820332;
double r2820334 = r2820330 / r2820333;
double r2820335 = r2820323 * r2820334;
double r2820336 = r2820334 - r2820324;
double r2820337 = r2820335 * r2820336;
double r2820338 = 4.0;
double r2820339 = r2820338 * r2820334;
double r2820340 = 6.0;
double r2820341 = r2820339 - r2820340;
double r2820342 = r2820331 * r2820341;
double r2820343 = r2820337 + r2820342;
double r2820344 = r2820343 * r2820333;
double r2820345 = r2820326 * r2820334;
double r2820346 = r2820344 + r2820345;
double r2820347 = r2820331 * r2820321;
double r2820348 = r2820346 + r2820347;
double r2820349 = r2820348 + r2820321;
double r2820350 = r2820326 - r2820328;
double r2820351 = r2820350 - r2820321;
double r2820352 = r2820351 / r2820333;
double r2820353 = r2820324 * r2820352;
double r2820354 = r2820349 + r2820353;
double r2820355 = r2820321 + r2820354;
return r2820355;
}
double f(double x1, double x2) {
double r2820356 = x1;
double r2820357 = r2820356 * r2820356;
double r2820358 = 3.0;
double r2820359 = r2820357 * r2820358;
double r2820360 = 1.0;
double r2820361 = r2820357 + r2820360;
double r2820362 = x2;
double r2820363 = 2.0;
double r2820364 = r2820362 * r2820363;
double r2820365 = r2820364 - r2820356;
double r2820366 = r2820359 + r2820365;
double r2820367 = r2820361 / r2820366;
double r2820368 = r2820359 / r2820367;
double r2820369 = cbrt(r2820368);
double r2820370 = r2820369 * r2820369;
double r2820371 = r2820370 * r2820369;
double r2820372 = r2820356 + r2820371;
double r2820373 = -6.0;
double r2820374 = r2820357 * r2820373;
double r2820375 = r2820374 + r2820356;
double r2820376 = r2820366 / r2820361;
double r2820377 = r2820376 - r2820358;
double r2820378 = r2820377 * r2820363;
double r2820379 = r2820356 * r2820378;
double r2820380 = 4.0;
double r2820381 = r2820357 * r2820380;
double r2820382 = r2820379 + r2820381;
double r2820383 = r2820376 * r2820382;
double r2820384 = r2820375 + r2820383;
double r2820385 = r2820361 * r2820384;
double r2820386 = -2.0;
double r2820387 = r2820386 * r2820362;
double r2820388 = r2820359 - r2820356;
double r2820389 = r2820387 + r2820388;
double r2820390 = r2820389 / r2820361;
double r2820391 = r2820390 * r2820358;
double r2820392 = r2820385 + r2820391;
double r2820393 = r2820372 + r2820392;
return r2820393;
}



Bits error versus x1



Bits error versus x2
Results
Initial program 0.5
Simplified0.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2019138
(FPCore (x1 x2)
:name "Rosa's FloatVsDoubleBenchmark"
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))))