\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \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.789971 \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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.32794500000000044 \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.789971 \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.1633699203691767 \lor \neg \left(x \le 1.14913787002183088\right):\\
\;\;\;\;\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(x, 1, 0.265709700396150994 \cdot {x}^{5} - 0.66655360720000001 \cdot {x}^{3}\right)\\
\end{array}double f(double x) {
double r231097 = 1.0;
double r231098 = 0.1049934947;
double r231099 = x;
double r231100 = r231099 * r231099;
double r231101 = r231098 * r231100;
double r231102 = r231097 + r231101;
double r231103 = 0.0424060604;
double r231104 = r231100 * r231100;
double r231105 = r231103 * r231104;
double r231106 = r231102 + r231105;
double r231107 = 0.0072644182;
double r231108 = r231104 * r231100;
double r231109 = r231107 * r231108;
double r231110 = r231106 + r231109;
double r231111 = 0.0005064034;
double r231112 = r231108 * r231100;
double r231113 = r231111 * r231112;
double r231114 = r231110 + r231113;
double r231115 = 0.0001789971;
double r231116 = r231112 * r231100;
double r231117 = r231115 * r231116;
double r231118 = r231114 + r231117;
double r231119 = 0.7715471019;
double r231120 = r231119 * r231100;
double r231121 = r231097 + r231120;
double r231122 = 0.2909738639;
double r231123 = r231122 * r231104;
double r231124 = r231121 + r231123;
double r231125 = 0.0694555761;
double r231126 = r231125 * r231108;
double r231127 = r231124 + r231126;
double r231128 = 0.0140005442;
double r231129 = r231128 * r231112;
double r231130 = r231127 + r231129;
double r231131 = 0.0008327945;
double r231132 = r231131 * r231116;
double r231133 = r231130 + r231132;
double r231134 = 2.0;
double r231135 = r231134 * r231115;
double r231136 = r231116 * r231100;
double r231137 = r231135 * r231136;
double r231138 = r231133 + r231137;
double r231139 = r231118 / r231138;
double r231140 = r231139 * r231099;
return r231140;
}
double f(double x) {
double r231141 = x;
double r231142 = -1.1633699203691767;
bool r231143 = r231141 <= r231142;
double r231144 = 1.1491378700218309;
bool r231145 = r231141 <= r231144;
double r231146 = !r231145;
bool r231147 = r231143 || r231146;
double r231148 = 0.2514179000665375;
double r231149 = 1.0;
double r231150 = 3.0;
double r231151 = pow(r231141, r231150);
double r231152 = r231149 / r231151;
double r231153 = 0.15298196345929327;
double r231154 = 5.0;
double r231155 = pow(r231141, r231154);
double r231156 = r231149 / r231155;
double r231157 = 0.5;
double r231158 = r231149 / r231141;
double r231159 = r231157 * r231158;
double r231160 = fma(r231153, r231156, r231159);
double r231161 = fma(r231148, r231152, r231160);
double r231162 = 1.0;
double r231163 = 0.265709700396151;
double r231164 = r231163 * r231155;
double r231165 = 0.6665536072;
double r231166 = r231165 * r231151;
double r231167 = r231164 - r231166;
double r231168 = fma(r231141, r231162, r231167);
double r231169 = r231147 ? r231161 : r231168;
return r231169;
}



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