\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) + 0.0008327945 \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) + \left(2 \cdot 0.0001789971\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)} \cdot x\begin{array}{l}
\mathbf{if}\;x \le -28773.730271787685:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{x}, 0.5, \mathsf{fma}\left(0.2514179000665375, \frac{\frac{1}{x}}{x \cdot x}, \frac{0.15298196345929327}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)}\right)\right)\\
\mathbf{elif}\;x \le 685.7073058025592:\\
\;\;\;\;\frac{\mathsf{fma}\left(x \cdot x, \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0005064034 + \left(x \cdot \sqrt{0.0001789971}\right) \cdot \left(x \cdot \sqrt{0.0001789971}\right)\right), \mathsf{fma}\left(0.0072644182, \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), 0.0424060604, \mathsf{fma}\left(0.1049934947, x \cdot x, 1\right)\right)\right)\right) \cdot x}{\mathsf{fma}\left(0.0001789971 \cdot 2, \left(\left(x \cdot x\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(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), \mathsf{fma}\left(x \cdot x, \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0140005442 + 0.0008327945 \cdot \left(x \cdot x\right)\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), 0.0694555761, \mathsf{fma}\left(0.2909738639, \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x \cdot x, 0.7715471019, 1\right)\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{x}, 0.5, \mathsf{fma}\left(0.2514179000665375, \frac{\frac{1}{x}}{x \cdot x}, \frac{0.15298196345929327}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)}\right)\right)\\
\end{array}double f(double x) {
double r2821231 = 1.0;
double r2821232 = 0.1049934947;
double r2821233 = x;
double r2821234 = r2821233 * r2821233;
double r2821235 = r2821232 * r2821234;
double r2821236 = r2821231 + r2821235;
double r2821237 = 0.0424060604;
double r2821238 = r2821234 * r2821234;
double r2821239 = r2821237 * r2821238;
double r2821240 = r2821236 + r2821239;
double r2821241 = 0.0072644182;
double r2821242 = r2821238 * r2821234;
double r2821243 = r2821241 * r2821242;
double r2821244 = r2821240 + r2821243;
double r2821245 = 0.0005064034;
double r2821246 = r2821242 * r2821234;
double r2821247 = r2821245 * r2821246;
double r2821248 = r2821244 + r2821247;
double r2821249 = 0.0001789971;
double r2821250 = r2821246 * r2821234;
double r2821251 = r2821249 * r2821250;
double r2821252 = r2821248 + r2821251;
double r2821253 = 0.7715471019;
double r2821254 = r2821253 * r2821234;
double r2821255 = r2821231 + r2821254;
double r2821256 = 0.2909738639;
double r2821257 = r2821256 * r2821238;
double r2821258 = r2821255 + r2821257;
double r2821259 = 0.0694555761;
double r2821260 = r2821259 * r2821242;
double r2821261 = r2821258 + r2821260;
double r2821262 = 0.0140005442;
double r2821263 = r2821262 * r2821246;
double r2821264 = r2821261 + r2821263;
double r2821265 = 0.0008327945;
double r2821266 = r2821265 * r2821250;
double r2821267 = r2821264 + r2821266;
double r2821268 = 2.0;
double r2821269 = r2821268 * r2821249;
double r2821270 = r2821250 * r2821234;
double r2821271 = r2821269 * r2821270;
double r2821272 = r2821267 + r2821271;
double r2821273 = r2821252 / r2821272;
double r2821274 = r2821273 * r2821233;
return r2821274;
}
double f(double x) {
double r2821275 = x;
double r2821276 = -28773.730271787685;
bool r2821277 = r2821275 <= r2821276;
double r2821278 = 1.0;
double r2821279 = r2821278 / r2821275;
double r2821280 = 0.5;
double r2821281 = 0.2514179000665375;
double r2821282 = r2821275 * r2821275;
double r2821283 = r2821279 / r2821282;
double r2821284 = 0.15298196345929327;
double r2821285 = r2821282 * r2821282;
double r2821286 = r2821275 * r2821285;
double r2821287 = r2821284 / r2821286;
double r2821288 = fma(r2821281, r2821283, r2821287);
double r2821289 = fma(r2821279, r2821280, r2821288);
double r2821290 = 685.7073058025592;
bool r2821291 = r2821275 <= r2821290;
double r2821292 = r2821282 * r2821285;
double r2821293 = 0.0005064034;
double r2821294 = 0.0001789971;
double r2821295 = sqrt(r2821294);
double r2821296 = r2821275 * r2821295;
double r2821297 = r2821296 * r2821296;
double r2821298 = r2821293 + r2821297;
double r2821299 = r2821292 * r2821298;
double r2821300 = 0.0072644182;
double r2821301 = 0.0424060604;
double r2821302 = 0.1049934947;
double r2821303 = fma(r2821302, r2821282, r2821278);
double r2821304 = fma(r2821285, r2821301, r2821303);
double r2821305 = fma(r2821300, r2821292, r2821304);
double r2821306 = fma(r2821282, r2821299, r2821305);
double r2821307 = r2821306 * r2821275;
double r2821308 = 2.0;
double r2821309 = r2821294 * r2821308;
double r2821310 = r2821292 * r2821292;
double r2821311 = 0.0140005442;
double r2821312 = 0.0008327945;
double r2821313 = r2821312 * r2821282;
double r2821314 = r2821311 + r2821313;
double r2821315 = r2821292 * r2821314;
double r2821316 = 0.0694555761;
double r2821317 = 0.2909738639;
double r2821318 = 0.7715471019;
double r2821319 = fma(r2821282, r2821318, r2821278);
double r2821320 = fma(r2821317, r2821285, r2821319);
double r2821321 = fma(r2821292, r2821316, r2821320);
double r2821322 = fma(r2821282, r2821315, r2821321);
double r2821323 = fma(r2821309, r2821310, r2821322);
double r2821324 = r2821307 / r2821323;
double r2821325 = r2821291 ? r2821324 : r2821289;
double r2821326 = r2821277 ? r2821289 : r2821325;
return r2821326;
}



Bits error versus x
if x < -28773.730271787685 or 685.7073058025592 < x Initial program 57.9
Simplified57.9
Taylor expanded around -inf 0.0
Simplified0.0
if -28773.730271787685 < x < 685.7073058025592Initial program 0.0
Simplified0.0
rmApplied associate-*l/0.0
rmApplied add-sqr-sqrt0.0
Applied unswap-sqr0.0
Final simplification0.0
herbie shell --seed 2019138 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 1 (* 0.1049934947 (* x x))) (* 0.0424060604 (* (* x x) (* x x)))) (* 0.0072644182 (* (* (* x x) (* x x)) (* x x)))) (* 0.0005064034 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 0.0001789971 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (+ (+ (+ (+ (+ (+ 1 (* 0.7715471019 (* x x))) (* 0.2909738639 (* (* x x) (* x x)))) (* 0.0694555761 (* (* (* x x) (* x x)) (* x x)))) (* 0.0140005442 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 0.0008327945 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (* (* 2 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))