\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 r2163705 = 1.0;
double r2163706 = /* ERROR: no posit support in C */;
double r2163707 = 0.1049934947;
double r2163708 = /* ERROR: no posit support in C */;
double r2163709 = x;
double r2163710 = r2163709 * r2163709;
double r2163711 = r2163708 * r2163710;
double r2163712 = r2163706 + r2163711;
double r2163713 = 0.0424060604;
double r2163714 = /* ERROR: no posit support in C */;
double r2163715 = r2163710 * r2163710;
double r2163716 = r2163714 * r2163715;
double r2163717 = r2163712 + r2163716;
double r2163718 = 0.0072644182;
double r2163719 = /* ERROR: no posit support in C */;
double r2163720 = r2163715 * r2163710;
double r2163721 = r2163719 * r2163720;
double r2163722 = r2163717 + r2163721;
double r2163723 = 0.0005064034;
double r2163724 = /* ERROR: no posit support in C */;
double r2163725 = r2163720 * r2163710;
double r2163726 = r2163724 * r2163725;
double r2163727 = r2163722 + r2163726;
double r2163728 = 0.0001789971;
double r2163729 = /* ERROR: no posit support in C */;
double r2163730 = r2163725 * r2163710;
double r2163731 = r2163729 * r2163730;
double r2163732 = r2163727 + r2163731;
double r2163733 = 0.7715471019;
double r2163734 = /* ERROR: no posit support in C */;
double r2163735 = r2163734 * r2163710;
double r2163736 = r2163706 + r2163735;
double r2163737 = 0.2909738639;
double r2163738 = /* ERROR: no posit support in C */;
double r2163739 = r2163738 * r2163715;
double r2163740 = r2163736 + r2163739;
double r2163741 = 0.0694555761;
double r2163742 = /* ERROR: no posit support in C */;
double r2163743 = r2163742 * r2163720;
double r2163744 = r2163740 + r2163743;
double r2163745 = 0.0140005442;
double r2163746 = /* ERROR: no posit support in C */;
double r2163747 = r2163746 * r2163725;
double r2163748 = r2163744 + r2163747;
double r2163749 = 0.0008327945;
double r2163750 = /* ERROR: no posit support in C */;
double r2163751 = r2163750 * r2163730;
double r2163752 = r2163748 + r2163751;
double r2163753 = 2.0;
double r2163754 = /* ERROR: no posit support in C */;
double r2163755 = r2163754 * r2163729;
double r2163756 = r2163730 * r2163710;
double r2163757 = r2163755 * r2163756;
double r2163758 = r2163752 + r2163757;
double r2163759 = r2163732 / r2163758;
double r2163760 = r2163759 * r2163709;
return r2163760;
}
double f(double x) {
double r2163761 = 1.0;
double r2163762 = 0.1049934947;
double r2163763 = x;
double r2163764 = r2163763 * r2163763;
double r2163765 = r2163762 * r2163764;
double r2163766 = r2163761 + r2163765;
double r2163767 = 0.0424060604;
double r2163768 = r2163764 * r2163764;
double r2163769 = r2163767 * r2163768;
double r2163770 = r2163766 + r2163769;
double r2163771 = 0.0072644182;
double r2163772 = r2163768 * r2163764;
double r2163773 = r2163771 * r2163772;
double r2163774 = r2163770 + r2163773;
double r2163775 = 0.0005064034;
double r2163776 = r2163772 * r2163764;
double r2163777 = r2163775 * r2163776;
double r2163778 = r2163774 + r2163777;
double r2163779 = 0.0001789971;
double r2163780 = r2163776 * r2163764;
double r2163781 = r2163779 * r2163780;
double r2163782 = r2163778 + r2163781;
double r2163783 = 0.7715471019;
double r2163784 = r2163783 * r2163764;
double r2163785 = r2163761 + r2163784;
double r2163786 = 0.2909738639;
double r2163787 = r2163786 * r2163768;
double r2163788 = r2163785 + r2163787;
double r2163789 = 0.0694555761;
double r2163790 = r2163789 * r2163772;
double r2163791 = r2163788 + r2163790;
double r2163792 = 0.0140005442;
double r2163793 = r2163792 * r2163776;
double r2163794 = r2163791 + r2163793;
double r2163795 = 0.0008327945;
double r2163796 = r2163795 * r2163776;
double r2163797 = r2163796 * r2163764;
double r2163798 = r2163794 + r2163797;
double r2163799 = 2.0;
double r2163800 = r2163799 * r2163779;
double r2163801 = r2163800 * r2163780;
double r2163802 = r2163801 * r2163764;
double r2163803 = r2163798 + r2163802;
double r2163804 = r2163782 / r2163803;
double r2163805 = r2163804 * r2163763;
return r2163805;
}



Bits error versus x
Initial program 4.3
rmApplied associate-*r*3.5
rmApplied associate-*r*3.2
Final simplification3.2
herbie shell --seed 2019124 +o rules:numerics
(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))