\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 r2966289 = 1.0;
double r2966290 = /* ERROR: no posit support in C */;
double r2966291 = 0.1049934947;
double r2966292 = /* ERROR: no posit support in C */;
double r2966293 = x;
double r2966294 = r2966293 * r2966293;
double r2966295 = r2966292 * r2966294;
double r2966296 = r2966290 + r2966295;
double r2966297 = 0.0424060604;
double r2966298 = /* ERROR: no posit support in C */;
double r2966299 = r2966294 * r2966294;
double r2966300 = r2966298 * r2966299;
double r2966301 = r2966296 + r2966300;
double r2966302 = 0.0072644182;
double r2966303 = /* ERROR: no posit support in C */;
double r2966304 = r2966299 * r2966294;
double r2966305 = r2966303 * r2966304;
double r2966306 = r2966301 + r2966305;
double r2966307 = 0.0005064034;
double r2966308 = /* ERROR: no posit support in C */;
double r2966309 = r2966304 * r2966294;
double r2966310 = r2966308 * r2966309;
double r2966311 = r2966306 + r2966310;
double r2966312 = 0.0001789971;
double r2966313 = /* ERROR: no posit support in C */;
double r2966314 = r2966309 * r2966294;
double r2966315 = r2966313 * r2966314;
double r2966316 = r2966311 + r2966315;
double r2966317 = 0.7715471019;
double r2966318 = /* ERROR: no posit support in C */;
double r2966319 = r2966318 * r2966294;
double r2966320 = r2966290 + r2966319;
double r2966321 = 0.2909738639;
double r2966322 = /* ERROR: no posit support in C */;
double r2966323 = r2966322 * r2966299;
double r2966324 = r2966320 + r2966323;
double r2966325 = 0.0694555761;
double r2966326 = /* ERROR: no posit support in C */;
double r2966327 = r2966326 * r2966304;
double r2966328 = r2966324 + r2966327;
double r2966329 = 0.0140005442;
double r2966330 = /* ERROR: no posit support in C */;
double r2966331 = r2966330 * r2966309;
double r2966332 = r2966328 + r2966331;
double r2966333 = 0.0008327945;
double r2966334 = /* ERROR: no posit support in C */;
double r2966335 = r2966334 * r2966314;
double r2966336 = r2966332 + r2966335;
double r2966337 = 2.0;
double r2966338 = /* ERROR: no posit support in C */;
double r2966339 = r2966338 * r2966313;
double r2966340 = r2966314 * r2966294;
double r2966341 = r2966339 * r2966340;
double r2966342 = r2966336 + r2966341;
double r2966343 = r2966316 / r2966342;
double r2966344 = r2966343 * r2966293;
return r2966344;
}
double f(double x) {
double r2966345 = 1.0;
double r2966346 = 0.1049934947;
double r2966347 = x;
double r2966348 = r2966347 * r2966347;
double r2966349 = r2966346 * r2966348;
double r2966350 = r2966345 + r2966349;
double r2966351 = 0.0424060604;
double r2966352 = r2966348 * r2966348;
double r2966353 = r2966351 * r2966352;
double r2966354 = r2966350 + r2966353;
double r2966355 = 0.0072644182;
double r2966356 = r2966352 * r2966348;
double r2966357 = r2966355 * r2966356;
double r2966358 = r2966354 + r2966357;
double r2966359 = 0.0005064034;
double r2966360 = r2966356 * r2966348;
double r2966361 = r2966359 * r2966360;
double r2966362 = r2966358 + r2966361;
double r2966363 = 0.0001789971;
double r2966364 = r2966360 * r2966348;
double r2966365 = r2966363 * r2966364;
double r2966366 = r2966362 + r2966365;
double r2966367 = 0.7715471019;
double r2966368 = r2966367 * r2966348;
double r2966369 = r2966345 + r2966368;
double r2966370 = 0.2909738639;
double r2966371 = r2966370 * r2966352;
double r2966372 = r2966369 + r2966371;
double r2966373 = 0.0694555761;
double r2966374 = r2966373 * r2966356;
double r2966375 = r2966372 + r2966374;
double r2966376 = 0.0140005442;
double r2966377 = r2966376 * r2966360;
double r2966378 = r2966375 + r2966377;
double r2966379 = 0.0008327945;
double r2966380 = r2966379 * r2966360;
double r2966381 = r2966380 * r2966348;
double r2966382 = r2966378 + r2966381;
double r2966383 = 2.0;
double r2966384 = r2966383 * r2966363;
double r2966385 = r2966384 * r2966364;
double r2966386 = r2966385 * r2966348;
double r2966387 = r2966382 + r2966386;
double r2966388 = r2966366 / r2966387;
double r2966389 = r2966388 * r2966347;
return r2966389;
}



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 +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))