\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 r4074863 = 1.0;
double r4074864 = /* ERROR: no posit support in C */;
double r4074865 = 0.1049934947;
double r4074866 = /* ERROR: no posit support in C */;
double r4074867 = x;
double r4074868 = r4074867 * r4074867;
double r4074869 = r4074866 * r4074868;
double r4074870 = r4074864 + r4074869;
double r4074871 = 0.0424060604;
double r4074872 = /* ERROR: no posit support in C */;
double r4074873 = r4074868 * r4074868;
double r4074874 = r4074872 * r4074873;
double r4074875 = r4074870 + r4074874;
double r4074876 = 0.0072644182;
double r4074877 = /* ERROR: no posit support in C */;
double r4074878 = r4074873 * r4074868;
double r4074879 = r4074877 * r4074878;
double r4074880 = r4074875 + r4074879;
double r4074881 = 0.0005064034;
double r4074882 = /* ERROR: no posit support in C */;
double r4074883 = r4074878 * r4074868;
double r4074884 = r4074882 * r4074883;
double r4074885 = r4074880 + r4074884;
double r4074886 = 0.0001789971;
double r4074887 = /* ERROR: no posit support in C */;
double r4074888 = r4074883 * r4074868;
double r4074889 = r4074887 * r4074888;
double r4074890 = r4074885 + r4074889;
double r4074891 = 0.7715471019;
double r4074892 = /* ERROR: no posit support in C */;
double r4074893 = r4074892 * r4074868;
double r4074894 = r4074864 + r4074893;
double r4074895 = 0.2909738639;
double r4074896 = /* ERROR: no posit support in C */;
double r4074897 = r4074896 * r4074873;
double r4074898 = r4074894 + r4074897;
double r4074899 = 0.0694555761;
double r4074900 = /* ERROR: no posit support in C */;
double r4074901 = r4074900 * r4074878;
double r4074902 = r4074898 + r4074901;
double r4074903 = 0.0140005442;
double r4074904 = /* ERROR: no posit support in C */;
double r4074905 = r4074904 * r4074883;
double r4074906 = r4074902 + r4074905;
double r4074907 = 0.0008327945;
double r4074908 = /* ERROR: no posit support in C */;
double r4074909 = r4074908 * r4074888;
double r4074910 = r4074906 + r4074909;
double r4074911 = 2.0;
double r4074912 = /* ERROR: no posit support in C */;
double r4074913 = r4074912 * r4074887;
double r4074914 = r4074888 * r4074868;
double r4074915 = r4074913 * r4074914;
double r4074916 = r4074910 + r4074915;
double r4074917 = r4074890 / r4074916;
double r4074918 = r4074917 * r4074867;
return r4074918;
}
double f(double x) {
double r4074919 = 1.0;
double r4074920 = 0.1049934947;
double r4074921 = x;
double r4074922 = r4074921 * r4074921;
double r4074923 = r4074920 * r4074922;
double r4074924 = r4074919 + r4074923;
double r4074925 = 0.0424060604;
double r4074926 = r4074922 * r4074922;
double r4074927 = r4074925 * r4074926;
double r4074928 = r4074924 + r4074927;
double r4074929 = 0.0072644182;
double r4074930 = r4074926 * r4074922;
double r4074931 = r4074929 * r4074930;
double r4074932 = r4074928 + r4074931;
double r4074933 = 0.0005064034;
double r4074934 = r4074930 * r4074922;
double r4074935 = r4074933 * r4074934;
double r4074936 = r4074932 + r4074935;
double r4074937 = 0.0001789971;
double r4074938 = r4074934 * r4074922;
double r4074939 = r4074937 * r4074938;
double r4074940 = r4074936 + r4074939;
double r4074941 = 0.7715471019;
double r4074942 = r4074941 * r4074922;
double r4074943 = r4074919 + r4074942;
double r4074944 = 0.2909738639;
double r4074945 = r4074944 * r4074926;
double r4074946 = r4074943 + r4074945;
double r4074947 = 0.0694555761;
double r4074948 = r4074947 * r4074930;
double r4074949 = r4074946 + r4074948;
double r4074950 = 0.0140005442;
double r4074951 = r4074950 * r4074934;
double r4074952 = r4074949 + r4074951;
double r4074953 = 0.0008327945;
double r4074954 = r4074953 * r4074934;
double r4074955 = r4074954 * r4074922;
double r4074956 = r4074952 + r4074955;
double r4074957 = 2.0;
double r4074958 = r4074957 * r4074937;
double r4074959 = r4074958 * r4074938;
double r4074960 = r4074959 * r4074922;
double r4074961 = r4074956 + r4074960;
double r4074962 = r4074940 / r4074961;
double r4074963 = r4074962 * r4074921;
return r4074963;
}



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