\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 r2016153 = 1.0;
double r2016154 = /* ERROR: no posit support in C */;
double r2016155 = 0.1049934947;
double r2016156 = /* ERROR: no posit support in C */;
double r2016157 = x;
double r2016158 = r2016157 * r2016157;
double r2016159 = r2016156 * r2016158;
double r2016160 = r2016154 + r2016159;
double r2016161 = 0.0424060604;
double r2016162 = /* ERROR: no posit support in C */;
double r2016163 = r2016158 * r2016158;
double r2016164 = r2016162 * r2016163;
double r2016165 = r2016160 + r2016164;
double r2016166 = 0.0072644182;
double r2016167 = /* ERROR: no posit support in C */;
double r2016168 = r2016163 * r2016158;
double r2016169 = r2016167 * r2016168;
double r2016170 = r2016165 + r2016169;
double r2016171 = 0.0005064034;
double r2016172 = /* ERROR: no posit support in C */;
double r2016173 = r2016168 * r2016158;
double r2016174 = r2016172 * r2016173;
double r2016175 = r2016170 + r2016174;
double r2016176 = 0.0001789971;
double r2016177 = /* ERROR: no posit support in C */;
double r2016178 = r2016173 * r2016158;
double r2016179 = r2016177 * r2016178;
double r2016180 = r2016175 + r2016179;
double r2016181 = 0.7715471019;
double r2016182 = /* ERROR: no posit support in C */;
double r2016183 = r2016182 * r2016158;
double r2016184 = r2016154 + r2016183;
double r2016185 = 0.2909738639;
double r2016186 = /* ERROR: no posit support in C */;
double r2016187 = r2016186 * r2016163;
double r2016188 = r2016184 + r2016187;
double r2016189 = 0.0694555761;
double r2016190 = /* ERROR: no posit support in C */;
double r2016191 = r2016190 * r2016168;
double r2016192 = r2016188 + r2016191;
double r2016193 = 0.0140005442;
double r2016194 = /* ERROR: no posit support in C */;
double r2016195 = r2016194 * r2016173;
double r2016196 = r2016192 + r2016195;
double r2016197 = 0.0008327945;
double r2016198 = /* ERROR: no posit support in C */;
double r2016199 = r2016198 * r2016178;
double r2016200 = r2016196 + r2016199;
double r2016201 = 2.0;
double r2016202 = /* ERROR: no posit support in C */;
double r2016203 = r2016202 * r2016177;
double r2016204 = r2016178 * r2016158;
double r2016205 = r2016203 * r2016204;
double r2016206 = r2016200 + r2016205;
double r2016207 = r2016180 / r2016206;
double r2016208 = r2016207 * r2016157;
return r2016208;
}
double f(double x) {
double r2016209 = 1.0;
double r2016210 = 0.1049934947;
double r2016211 = x;
double r2016212 = r2016211 * r2016211;
double r2016213 = r2016210 * r2016212;
double r2016214 = r2016209 + r2016213;
double r2016215 = 0.0424060604;
double r2016216 = r2016212 * r2016212;
double r2016217 = r2016215 * r2016216;
double r2016218 = r2016214 + r2016217;
double r2016219 = 0.0072644182;
double r2016220 = r2016216 * r2016212;
double r2016221 = r2016219 * r2016220;
double r2016222 = r2016218 + r2016221;
double r2016223 = 0.0005064034;
double r2016224 = r2016220 * r2016212;
double r2016225 = r2016223 * r2016224;
double r2016226 = r2016222 + r2016225;
double r2016227 = 0.0001789971;
double r2016228 = r2016224 * r2016212;
double r2016229 = r2016227 * r2016228;
double r2016230 = r2016226 + r2016229;
double r2016231 = 0.7715471019;
double r2016232 = r2016231 * r2016212;
double r2016233 = r2016209 + r2016232;
double r2016234 = 0.2909738639;
double r2016235 = r2016234 * r2016216;
double r2016236 = r2016233 + r2016235;
double r2016237 = 0.0694555761;
double r2016238 = r2016237 * r2016220;
double r2016239 = r2016236 + r2016238;
double r2016240 = 0.0140005442;
double r2016241 = r2016240 * r2016224;
double r2016242 = r2016239 + r2016241;
double r2016243 = 0.0008327945;
double r2016244 = r2016243 * r2016224;
double r2016245 = r2016244 * r2016212;
double r2016246 = r2016242 + r2016245;
double r2016247 = 2.0;
double r2016248 = r2016247 * r2016227;
double r2016249 = r2016248 * r2016228;
double r2016250 = r2016249 * r2016212;
double r2016251 = r2016246 + r2016250;
double r2016252 = r2016230 / r2016251;
double r2016253 = r2016252 * r2016211;
return r2016253;
}



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