\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(0.1049934947\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(0.0424060604\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0072644182\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0005064034\right) \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0001789971\right) \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(0.7715471019\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(0.2909738639\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0694555761\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0140005442\right) \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0008327945\right) \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(\left(2\right) \cdot \left(0.0001789971\right)\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}\right) \cdot x\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0001789971 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)}{\left(\left(\left(\left(\left(1 + 0.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left(0.0008327945 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(x \cdot x\right)\right) + \left(\left(2 \cdot 0.0001789971\right) \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(x \cdot x\right)} \cdot xdouble f(double x) {
double r2603443 = 1.0;
double r2603444 = /* ERROR: no posit support in C */;
double r2603445 = 0.1049934947;
double r2603446 = /* ERROR: no posit support in C */;
double r2603447 = x;
double r2603448 = r2603447 * r2603447;
double r2603449 = r2603446 * r2603448;
double r2603450 = r2603444 + r2603449;
double r2603451 = 0.0424060604;
double r2603452 = /* ERROR: no posit support in C */;
double r2603453 = r2603448 * r2603448;
double r2603454 = r2603452 * r2603453;
double r2603455 = r2603450 + r2603454;
double r2603456 = 0.0072644182;
double r2603457 = /* ERROR: no posit support in C */;
double r2603458 = r2603453 * r2603448;
double r2603459 = r2603457 * r2603458;
double r2603460 = r2603455 + r2603459;
double r2603461 = 0.0005064034;
double r2603462 = /* ERROR: no posit support in C */;
double r2603463 = r2603458 * r2603448;
double r2603464 = r2603462 * r2603463;
double r2603465 = r2603460 + r2603464;
double r2603466 = 0.0001789971;
double r2603467 = /* ERROR: no posit support in C */;
double r2603468 = r2603463 * r2603448;
double r2603469 = r2603467 * r2603468;
double r2603470 = r2603465 + r2603469;
double r2603471 = 0.7715471019;
double r2603472 = /* ERROR: no posit support in C */;
double r2603473 = r2603472 * r2603448;
double r2603474 = r2603444 + r2603473;
double r2603475 = 0.2909738639;
double r2603476 = /* ERROR: no posit support in C */;
double r2603477 = r2603476 * r2603453;
double r2603478 = r2603474 + r2603477;
double r2603479 = 0.0694555761;
double r2603480 = /* ERROR: no posit support in C */;
double r2603481 = r2603480 * r2603458;
double r2603482 = r2603478 + r2603481;
double r2603483 = 0.0140005442;
double r2603484 = /* ERROR: no posit support in C */;
double r2603485 = r2603484 * r2603463;
double r2603486 = r2603482 + r2603485;
double r2603487 = 0.0008327945;
double r2603488 = /* ERROR: no posit support in C */;
double r2603489 = r2603488 * r2603468;
double r2603490 = r2603486 + r2603489;
double r2603491 = 2.0;
double r2603492 = /* ERROR: no posit support in C */;
double r2603493 = r2603492 * r2603467;
double r2603494 = r2603468 * r2603448;
double r2603495 = r2603493 * r2603494;
double r2603496 = r2603490 + r2603495;
double r2603497 = r2603470 / r2603496;
double r2603498 = r2603497 * r2603447;
return r2603498;
}
double f(double x) {
double r2603499 = 1.0;
double r2603500 = 0.1049934947;
double r2603501 = x;
double r2603502 = r2603501 * r2603501;
double r2603503 = r2603500 * r2603502;
double r2603504 = r2603499 + r2603503;
double r2603505 = 0.0424060604;
double r2603506 = r2603502 * r2603502;
double r2603507 = r2603505 * r2603506;
double r2603508 = r2603504 + r2603507;
double r2603509 = 0.0072644182;
double r2603510 = r2603506 * r2603502;
double r2603511 = r2603509 * r2603510;
double r2603512 = r2603508 + r2603511;
double r2603513 = 0.0005064034;
double r2603514 = r2603510 * r2603502;
double r2603515 = r2603513 * r2603514;
double r2603516 = r2603512 + r2603515;
double r2603517 = 0.0001789971;
double r2603518 = r2603514 * r2603502;
double r2603519 = r2603517 * r2603518;
double r2603520 = r2603516 + r2603519;
double r2603521 = 0.7715471019;
double r2603522 = r2603521 * r2603502;
double r2603523 = r2603499 + r2603522;
double r2603524 = 0.2909738639;
double r2603525 = r2603524 * r2603506;
double r2603526 = r2603523 + r2603525;
double r2603527 = 0.0694555761;
double r2603528 = r2603527 * r2603510;
double r2603529 = r2603526 + r2603528;
double r2603530 = 0.0140005442;
double r2603531 = r2603530 * r2603514;
double r2603532 = r2603529 + r2603531;
double r2603533 = 0.0008327945;
double r2603534 = r2603533 * r2603514;
double r2603535 = r2603534 * r2603502;
double r2603536 = r2603532 + r2603535;
double r2603537 = 2.0;
double r2603538 = r2603537 * r2603517;
double r2603539 = r2603538 * r2603518;
double r2603540 = r2603539 * r2603502;
double r2603541 = r2603536 + r2603540;
double r2603542 = r2603520 / r2603541;
double r2603543 = r2603542 * r2603501;
return r2603543;
}



Bits error versus x
Initial program 4.3
rmApplied associate-*r*3.5
rmApplied associate-*r*3.2
Final simplification3.2
herbie shell --seed 2019121
(FPCore (x)
:name "Jmat.Real.dawson"
(*.p16 (/.p16 (+.p16 (+.p16 (+.p16 (+.p16 (+.p16 (real->posit16 1) (*.p16 (real->posit16 0.1049934947) (*.p16 x x))) (*.p16 (real->posit16 0.0424060604) (*.p16 (*.p16 x x) (*.p16 x x)))) (*.p16 (real->posit16 0.0072644182) (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0005064034) (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0001789971) (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (+.p16 (+.p16 (+.p16 (+.p16 (+.p16 (+.p16 (real->posit16 1) (*.p16 (real->posit16 0.7715471019) (*.p16 x x))) (*.p16 (real->posit16 0.2909738639) (*.p16 (*.p16 x x) (*.p16 x x)))) (*.p16 (real->posit16 0.0694555761) (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0140005442) (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0008327945) (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (*.p16 (*.p16 (real->posit16 2) (real->posit16 0.0001789971)) (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x))))) x))