\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 r2012496 = 1.0;
double r2012497 = /* ERROR: no posit support in C */;
double r2012498 = 0.1049934947;
double r2012499 = /* ERROR: no posit support in C */;
double r2012500 = x;
double r2012501 = r2012500 * r2012500;
double r2012502 = r2012499 * r2012501;
double r2012503 = r2012497 + r2012502;
double r2012504 = 0.0424060604;
double r2012505 = /* ERROR: no posit support in C */;
double r2012506 = r2012501 * r2012501;
double r2012507 = r2012505 * r2012506;
double r2012508 = r2012503 + r2012507;
double r2012509 = 0.0072644182;
double r2012510 = /* ERROR: no posit support in C */;
double r2012511 = r2012506 * r2012501;
double r2012512 = r2012510 * r2012511;
double r2012513 = r2012508 + r2012512;
double r2012514 = 0.0005064034;
double r2012515 = /* ERROR: no posit support in C */;
double r2012516 = r2012511 * r2012501;
double r2012517 = r2012515 * r2012516;
double r2012518 = r2012513 + r2012517;
double r2012519 = 0.0001789971;
double r2012520 = /* ERROR: no posit support in C */;
double r2012521 = r2012516 * r2012501;
double r2012522 = r2012520 * r2012521;
double r2012523 = r2012518 + r2012522;
double r2012524 = 0.7715471019;
double r2012525 = /* ERROR: no posit support in C */;
double r2012526 = r2012525 * r2012501;
double r2012527 = r2012497 + r2012526;
double r2012528 = 0.2909738639;
double r2012529 = /* ERROR: no posit support in C */;
double r2012530 = r2012529 * r2012506;
double r2012531 = r2012527 + r2012530;
double r2012532 = 0.0694555761;
double r2012533 = /* ERROR: no posit support in C */;
double r2012534 = r2012533 * r2012511;
double r2012535 = r2012531 + r2012534;
double r2012536 = 0.0140005442;
double r2012537 = /* ERROR: no posit support in C */;
double r2012538 = r2012537 * r2012516;
double r2012539 = r2012535 + r2012538;
double r2012540 = 0.0008327945;
double r2012541 = /* ERROR: no posit support in C */;
double r2012542 = r2012541 * r2012521;
double r2012543 = r2012539 + r2012542;
double r2012544 = 2.0;
double r2012545 = /* ERROR: no posit support in C */;
double r2012546 = r2012545 * r2012520;
double r2012547 = r2012521 * r2012501;
double r2012548 = r2012546 * r2012547;
double r2012549 = r2012543 + r2012548;
double r2012550 = r2012523 / r2012549;
double r2012551 = r2012550 * r2012500;
return r2012551;
}
double f(double x) {
double r2012552 = 1.0;
double r2012553 = 0.1049934947;
double r2012554 = x;
double r2012555 = r2012554 * r2012554;
double r2012556 = r2012553 * r2012555;
double r2012557 = r2012552 + r2012556;
double r2012558 = 0.0424060604;
double r2012559 = r2012555 * r2012555;
double r2012560 = r2012558 * r2012559;
double r2012561 = r2012557 + r2012560;
double r2012562 = 0.0072644182;
double r2012563 = r2012559 * r2012555;
double r2012564 = r2012562 * r2012563;
double r2012565 = r2012561 + r2012564;
double r2012566 = 0.0005064034;
double r2012567 = r2012563 * r2012555;
double r2012568 = r2012566 * r2012567;
double r2012569 = r2012565 + r2012568;
double r2012570 = 0.0001789971;
double r2012571 = r2012567 * r2012555;
double r2012572 = r2012570 * r2012571;
double r2012573 = r2012569 + r2012572;
double r2012574 = 0.7715471019;
double r2012575 = r2012574 * r2012555;
double r2012576 = r2012552 + r2012575;
double r2012577 = 0.2909738639;
double r2012578 = r2012577 * r2012559;
double r2012579 = r2012576 + r2012578;
double r2012580 = 0.0694555761;
double r2012581 = r2012580 * r2012563;
double r2012582 = r2012579 + r2012581;
double r2012583 = 0.0140005442;
double r2012584 = r2012583 * r2012567;
double r2012585 = r2012582 + r2012584;
double r2012586 = 0.0008327945;
double r2012587 = r2012586 * r2012567;
double r2012588 = r2012587 * r2012555;
double r2012589 = r2012585 + r2012588;
double r2012590 = 2.0;
double r2012591 = r2012590 * r2012570;
double r2012592 = r2012591 * r2012571;
double r2012593 = r2012592 * r2012555;
double r2012594 = r2012589 + r2012593;
double r2012595 = r2012573 / r2012594;
double r2012596 = r2012595 * r2012554;
return r2012596;
}



Bits error versus x
Initial program 4.2
rmApplied associate-*r*3.4
rmApplied associate-*r*3.1
Final simplification3.1
herbie shell --seed 2019107
(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))