double f(double x1, double x2) {
double r29386525 = x1;
double r29386526 = 2.0;
double r29386527 = r29386526 * r29386525;
double r29386528 = 3.0;
double r29386529 = r29386528 * r29386525;
double r29386530 = r29386529 * r29386525;
double r29386531 = x2;
double r29386532 = r29386526 * r29386531;
double r29386533 = r29386530 + r29386532;
double r29386534 = r29386533 - r29386525;
double r29386535 = r29386525 * r29386525;
double r29386536 = 1.0;
double r29386537 = r29386535 + r29386536;
double r29386538 = r29386534 / r29386537;
double r29386539 = r29386527 * r29386538;
double r29386540 = r29386538 - r29386528;
double r29386541 = r29386539 * r29386540;
double r29386542 = 4.0;
double r29386543 = r29386542 * r29386538;
double r29386544 = 6.0;
double r29386545 = r29386543 - r29386544;
double r29386546 = r29386535 * r29386545;
double r29386547 = r29386541 + r29386546;
double r29386548 = r29386547 * r29386537;
double r29386549 = r29386530 * r29386538;
double r29386550 = r29386548 + r29386549;
double r29386551 = r29386535 * r29386525;
double r29386552 = r29386550 + r29386551;
double r29386553 = r29386552 + r29386525;
double r29386554 = r29386530 - r29386532;
double r29386555 = r29386554 - r29386525;
double r29386556 = r29386555 / r29386537;
double r29386557 = r29386528 * r29386556;
double r29386558 = r29386553 + r29386557;
double r29386559 = r29386525 + r29386558;
return r29386559;
}
double f(double x1, double x2) {
double r29386560 = x1;
double r29386561 = r29386560 * r29386560;
double r29386562 = r29386560 * r29386561;
double r29386563 = 3.0;
double r29386564 = r29386563 * r29386560;
double r29386565 = r29386564 * r29386560;
double r29386566 = x2;
double r29386567 = 2.0;
double r29386568 = r29386566 * r29386567;
double r29386569 = r29386565 + r29386568;
double r29386570 = r29386569 - r29386560;
double r29386571 = 1.0;
double r29386572 = r29386571 + r29386561;
double r29386573 = r29386570 / r29386572;
double r29386574 = r29386565 * r29386573;
double r29386575 = 4.0;
double r29386576 = r29386575 * r29386573;
double r29386577 = 6.0;
double r29386578 = r29386576 - r29386577;
double r29386579 = cbrt(r29386578);
double r29386580 = r29386579 * r29386579;
double r29386581 = r29386561 * r29386580;
double r29386582 = r29386581 * r29386579;
double r29386583 = r29386573 - r29386563;
double r29386584 = r29386560 * r29386567;
double r29386585 = r29386584 * r29386573;
double r29386586 = r29386583 * r29386585;
double r29386587 = r29386582 + r29386586;
double r29386588 = r29386572 * r29386587;
double r29386589 = r29386574 + r29386588;
double r29386590 = r29386562 + r29386589;
double r29386591 = r29386560 + r29386590;
double r29386592 = r29386565 - r29386568;
double r29386593 = r29386592 - r29386560;
double r29386594 = r29386593 / r29386572;
double r29386595 = r29386594 * r29386563;
double r29386596 = r29386591 + r29386595;
double r29386597 = r29386596 + r29386560;
return r29386597;
}
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(\left(x1 + \left(x1 \cdot \left(x1 \cdot x1\right) + \left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(1 + x1 \cdot x1\right) \cdot \left(\left(\left(x1 \cdot x1\right) \cdot \left(\sqrt[3]{4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} - 6} \cdot \sqrt[3]{4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} - 6}\right)\right) \cdot \sqrt[3]{4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} - 6} + \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} - 3\right) \cdot \left(\left(x1 \cdot 2\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1}\right)\right)\right)\right)\right) + \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} \cdot 3\right) + x1


Bits error versus x1



Bits error versus x2
Initial program 0.5
rmApplied add-cube-cbrt0.6
Applied associate-*r*0.6
Final simplification0.6
herbie shell --seed 2019101
(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))))))