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)x1 + \left(\left(\left(\left(\left(\left(\sqrt[3]{\mathsf{fma}\left(\left(2 \cdot x1\right) \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)}, \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 3, \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\left(2 \cdot x1\right) \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)}, \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 3, \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\left(2 \cdot x1\right) \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)}, \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 3, \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, 2 \cdot x2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)\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)double f(double x1, double x2) {
double r68360 = x1;
double r68361 = 2.0;
double r68362 = r68361 * r68360;
double r68363 = 3.0;
double r68364 = r68363 * r68360;
double r68365 = r68364 * r68360;
double r68366 = x2;
double r68367 = r68361 * r68366;
double r68368 = r68365 + r68367;
double r68369 = r68368 - r68360;
double r68370 = r68360 * r68360;
double r68371 = 1.0;
double r68372 = r68370 + r68371;
double r68373 = r68369 / r68372;
double r68374 = r68362 * r68373;
double r68375 = r68373 - r68363;
double r68376 = r68374 * r68375;
double r68377 = 4.0;
double r68378 = r68377 * r68373;
double r68379 = 6.0;
double r68380 = r68378 - r68379;
double r68381 = r68370 * r68380;
double r68382 = r68376 + r68381;
double r68383 = r68382 * r68372;
double r68384 = r68365 * r68373;
double r68385 = r68383 + r68384;
double r68386 = r68370 * r68360;
double r68387 = r68385 + r68386;
double r68388 = r68387 + r68360;
double r68389 = r68365 - r68367;
double r68390 = r68389 - r68360;
double r68391 = r68390 / r68372;
double r68392 = r68363 * r68391;
double r68393 = r68388 + r68392;
double r68394 = r68360 + r68393;
return r68394;
}
double f(double x1, double x2) {
double r68395 = x1;
double r68396 = 2.0;
double r68397 = r68396 * r68395;
double r68398 = 3.0;
double r68399 = r68398 * r68395;
double r68400 = x2;
double r68401 = r68396 * r68400;
double r68402 = fma(r68399, r68395, r68401);
double r68403 = r68402 - r68395;
double r68404 = 1.0;
double r68405 = fma(r68395, r68395, r68404);
double r68406 = r68403 / r68405;
double r68407 = r68397 * r68406;
double r68408 = r68406 - r68398;
double r68409 = 4.0;
double r68410 = r68409 * r68406;
double r68411 = 6.0;
double r68412 = r68410 - r68411;
double r68413 = r68395 * r68395;
double r68414 = r68412 * r68413;
double r68415 = fma(r68407, r68408, r68414);
double r68416 = cbrt(r68415);
double r68417 = r68416 * r68416;
double r68418 = r68417 * r68416;
double r68419 = r68413 + r68404;
double r68420 = r68418 * r68419;
double r68421 = r68399 * r68395;
double r68422 = r68421 + r68401;
double r68423 = r68422 - r68395;
double r68424 = r68423 / r68419;
double r68425 = r68421 * r68424;
double r68426 = r68420 + r68425;
double r68427 = r68413 * r68395;
double r68428 = r68426 + r68427;
double r68429 = r68428 + r68395;
double r68430 = r68421 - r68401;
double r68431 = r68430 - r68395;
double r68432 = r68431 / r68419;
double r68433 = r68398 * r68432;
double r68434 = r68429 + r68433;
double r68435 = r68395 + r68434;
return r68435;
}



Bits error versus x1



Bits error versus x2
Initial program 0.5
rmApplied add-cube-cbrt0.7
Simplified0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x1 x2)
:name "Rosa's FloatVsDoubleBenchmark"
:precision binary64
(+ 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))))))