\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \cdot 10^{-4} \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) + 1.789971000000000009994005623070734145585 \cdot 10^{-4} \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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) + 8.327945000000000442749725770852364803432 \cdot 10^{-4} \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 1.789971000000000009994005623070734145585 \cdot 10^{-4}\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 -1.134957729769652701179438736289739608765:\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.2514179000665375252054900556686334311962}{\left(x \cdot x\right) \cdot x} + \frac{0.1529819634592932686700805788859724998474}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)}\right)\\
\mathbf{elif}\;x \le 1.139187033807632198900705589039716869593:\\
\;\;\;\;\mathsf{fma}\left(\left(-x\right) \cdot \left(x \cdot x\right), 0.6665536072000000089587956608738750219345, \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right), 0.2657097003961509940062057921750238165259, x \cdot 1\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.2514179000665375252054900556686334311962}{\left(x \cdot x\right) \cdot x} + \frac{0.1529819634592932686700805788859724998474}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)}\right)\\
\end{array}double f(double x) {
double r7896215 = 1.0;
double r7896216 = 0.1049934947;
double r7896217 = x;
double r7896218 = r7896217 * r7896217;
double r7896219 = r7896216 * r7896218;
double r7896220 = r7896215 + r7896219;
double r7896221 = 0.0424060604;
double r7896222 = r7896218 * r7896218;
double r7896223 = r7896221 * r7896222;
double r7896224 = r7896220 + r7896223;
double r7896225 = 0.0072644182;
double r7896226 = r7896222 * r7896218;
double r7896227 = r7896225 * r7896226;
double r7896228 = r7896224 + r7896227;
double r7896229 = 0.0005064034;
double r7896230 = r7896226 * r7896218;
double r7896231 = r7896229 * r7896230;
double r7896232 = r7896228 + r7896231;
double r7896233 = 0.0001789971;
double r7896234 = r7896230 * r7896218;
double r7896235 = r7896233 * r7896234;
double r7896236 = r7896232 + r7896235;
double r7896237 = 0.7715471019;
double r7896238 = r7896237 * r7896218;
double r7896239 = r7896215 + r7896238;
double r7896240 = 0.2909738639;
double r7896241 = r7896240 * r7896222;
double r7896242 = r7896239 + r7896241;
double r7896243 = 0.0694555761;
double r7896244 = r7896243 * r7896226;
double r7896245 = r7896242 + r7896244;
double r7896246 = 0.0140005442;
double r7896247 = r7896246 * r7896230;
double r7896248 = r7896245 + r7896247;
double r7896249 = 0.0008327945;
double r7896250 = r7896249 * r7896234;
double r7896251 = r7896248 + r7896250;
double r7896252 = 2.0;
double r7896253 = r7896252 * r7896233;
double r7896254 = r7896234 * r7896218;
double r7896255 = r7896253 * r7896254;
double r7896256 = r7896251 + r7896255;
double r7896257 = r7896236 / r7896256;
double r7896258 = r7896257 * r7896217;
return r7896258;
}
double f(double x) {
double r7896259 = x;
double r7896260 = -1.1349577297696527;
bool r7896261 = r7896259 <= r7896260;
double r7896262 = 0.5;
double r7896263 = r7896262 / r7896259;
double r7896264 = 0.2514179000665375;
double r7896265 = r7896259 * r7896259;
double r7896266 = r7896265 * r7896259;
double r7896267 = r7896264 / r7896266;
double r7896268 = 0.15298196345929327;
double r7896269 = r7896265 * r7896266;
double r7896270 = r7896268 / r7896269;
double r7896271 = r7896267 + r7896270;
double r7896272 = r7896263 + r7896271;
double r7896273 = 1.1391870338076322;
bool r7896274 = r7896259 <= r7896273;
double r7896275 = -r7896259;
double r7896276 = r7896275 * r7896265;
double r7896277 = 0.6665536072;
double r7896278 = 0.265709700396151;
double r7896279 = 1.0;
double r7896280 = r7896259 * r7896279;
double r7896281 = fma(r7896269, r7896278, r7896280);
double r7896282 = fma(r7896276, r7896277, r7896281);
double r7896283 = r7896274 ? r7896282 : r7896272;
double r7896284 = r7896261 ? r7896272 : r7896283;
return r7896284;
}



Bits error versus x
if x < -1.1349577297696527 or 1.1391870338076322 < x Initial program 58.6
Taylor expanded around inf 0.2
Simplified0.2
if -1.1349577297696527 < x < 1.1391870338076322Initial program 0.0
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 1.0 (* 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 (* 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 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))