\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(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\frac{\left(0.7715471019\right)}{\left(\left(0.2909738639\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\frac{\left(0.0694555761\right)}{\left(\left(\frac{\left(\left(\left(0.0001789971\right) \cdot \left(x \cdot x\right)\right) \cdot \left(2\right)\right)}{\left(0.0008327945\right)}\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)\right)}\right)\right)}\right)}{\left(\left(\left(0.0140005442\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}\right) \cdot \left(\left(1\right) \cdot x\right)\right)}{\left(\left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\frac{\left(0.7715471019\right)}{\left(\left(0.2909738639\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\frac{\left(0.0694555761\right)}{\left(\left(\frac{\left(\left(\left(0.0001789971\right) \cdot \left(x \cdot x\right)\right) \cdot \left(2\right)\right)}{\left(0.0008327945\right)}\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)\right)}\right)\right)}\right)}{\left(\left(\left(0.0140005442\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\left(\frac{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(0.0005064034\right)}{\left(\left(x \cdot x\right) \cdot \left(0.0001789971\right)\right)}\right)\right)}{\left(0.0072644182\right)}\right) \cdot \left(x \cdot x\right)\right)}{\left(0.0424060604\right)}\right)\right)}{\left(0.1049934947\right)}\right)\right) \cdot x\right)\right)}double f(double x) {
double r6204970 = 1.0;
double r6204971 = /* ERROR: no posit support in C */;
double r6204972 = 0.1049934947;
double r6204973 = /* ERROR: no posit support in C */;
double r6204974 = x;
double r6204975 = r6204974 * r6204974;
double r6204976 = r6204973 * r6204975;
double r6204977 = r6204971 + r6204976;
double r6204978 = 0.0424060604;
double r6204979 = /* ERROR: no posit support in C */;
double r6204980 = r6204975 * r6204975;
double r6204981 = r6204979 * r6204980;
double r6204982 = r6204977 + r6204981;
double r6204983 = 0.0072644182;
double r6204984 = /* ERROR: no posit support in C */;
double r6204985 = r6204980 * r6204975;
double r6204986 = r6204984 * r6204985;
double r6204987 = r6204982 + r6204986;
double r6204988 = 0.0005064034;
double r6204989 = /* ERROR: no posit support in C */;
double r6204990 = r6204985 * r6204975;
double r6204991 = r6204989 * r6204990;
double r6204992 = r6204987 + r6204991;
double r6204993 = 0.0001789971;
double r6204994 = /* ERROR: no posit support in C */;
double r6204995 = r6204990 * r6204975;
double r6204996 = r6204994 * r6204995;
double r6204997 = r6204992 + r6204996;
double r6204998 = 0.7715471019;
double r6204999 = /* ERROR: no posit support in C */;
double r6205000 = r6204999 * r6204975;
double r6205001 = r6204971 + r6205000;
double r6205002 = 0.2909738639;
double r6205003 = /* ERROR: no posit support in C */;
double r6205004 = r6205003 * r6204980;
double r6205005 = r6205001 + r6205004;
double r6205006 = 0.0694555761;
double r6205007 = /* ERROR: no posit support in C */;
double r6205008 = r6205007 * r6204985;
double r6205009 = r6205005 + r6205008;
double r6205010 = 0.0140005442;
double r6205011 = /* ERROR: no posit support in C */;
double r6205012 = r6205011 * r6204990;
double r6205013 = r6205009 + r6205012;
double r6205014 = 0.0008327945;
double r6205015 = /* ERROR: no posit support in C */;
double r6205016 = r6205015 * r6204995;
double r6205017 = r6205013 + r6205016;
double r6205018 = 2.0;
double r6205019 = /* ERROR: no posit support in C */;
double r6205020 = r6205019 * r6204994;
double r6205021 = r6204995 * r6204975;
double r6205022 = r6205020 * r6205021;
double r6205023 = r6205017 + r6205022;
double r6205024 = r6204997 / r6205023;
double r6205025 = r6205024 * r6204974;
return r6205025;
}
double f(double x) {
double r6205026 = 1.0;
double r6205027 = /* ERROR: no posit support in C */;
double r6205028 = 1.0;
double r6205029 = /* ERROR: no posit support in C */;
double r6205030 = x;
double r6205031 = r6205030 * r6205030;
double r6205032 = 0.7715471019;
double r6205033 = /* ERROR: no posit support in C */;
double r6205034 = 0.2909738639;
double r6205035 = /* ERROR: no posit support in C */;
double r6205036 = r6205035 * r6205031;
double r6205037 = r6205033 + r6205036;
double r6205038 = r6205031 * r6205031;
double r6205039 = 0.0694555761;
double r6205040 = /* ERROR: no posit support in C */;
double r6205041 = 0.0001789971;
double r6205042 = /* ERROR: no posit support in C */;
double r6205043 = r6205042 * r6205031;
double r6205044 = 2.0;
double r6205045 = /* ERROR: no posit support in C */;
double r6205046 = r6205043 * r6205045;
double r6205047 = 0.0008327945;
double r6205048 = /* ERROR: no posit support in C */;
double r6205049 = r6205046 + r6205048;
double r6205050 = r6205049 * r6205038;
double r6205051 = r6205040 + r6205050;
double r6205052 = r6205038 * r6205051;
double r6205053 = r6205037 + r6205052;
double r6205054 = r6205031 * r6205053;
double r6205055 = r6205029 + r6205054;
double r6205056 = 0.0140005442;
double r6205057 = /* ERROR: no posit support in C */;
double r6205058 = r6205057 * r6205038;
double r6205059 = r6205058 * r6205038;
double r6205060 = r6205055 + r6205059;
double r6205061 = r6205027 / r6205060;
double r6205062 = r6205029 * r6205030;
double r6205063 = r6205061 * r6205062;
double r6205064 = 0.0005064034;
double r6205065 = /* ERROR: no posit support in C */;
double r6205066 = r6205031 * r6205042;
double r6205067 = r6205065 + r6205066;
double r6205068 = r6205031 * r6205067;
double r6205069 = 0.0072644182;
double r6205070 = /* ERROR: no posit support in C */;
double r6205071 = r6205068 + r6205070;
double r6205072 = r6205071 * r6205031;
double r6205073 = 0.0424060604;
double r6205074 = /* ERROR: no posit support in C */;
double r6205075 = r6205072 + r6205074;
double r6205076 = r6205031 * r6205075;
double r6205077 = 0.1049934947;
double r6205078 = /* ERROR: no posit support in C */;
double r6205079 = r6205076 + r6205078;
double r6205080 = r6205031 * r6205079;
double r6205081 = r6205080 * r6205030;
double r6205082 = r6205061 * r6205081;
double r6205083 = r6205063 + r6205082;
return r6205083;
}



Bits error versus x
Initial program 4.2
Simplified3.6
rmApplied *p16-rgt-identity-expand3.6
Applied associate-/l*3.6
Simplified3.5
rmApplied *p16-rgt-identity-expand3.5
Applied p16-*-un-lft-identity3.5
Applied p16-times-frac3.5
Simplified3.5
rmApplied associate-*l*3.4
Simplified3.4
rmApplied distribute-rgt-in3.4
Applied distribute-lft-in3.4
Final simplification3.4
herbie shell --seed 2019164
(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))