\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 -106772652.369797722 \lor \neg \left(x \le 653.87127844365295\right):\\
\;\;\;\;\left(\frac{0.1529819634592933}{{x}^{5}} + \frac{0.25141790006653753}{{x}^{3}}\right) + \frac{0.5}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(1.789971 \cdot 10^{-4} \cdot {x}^{2} + 5.0640340000000002 \cdot 10^{-4}, {\left(x \cdot x\right)}^{4}, \mathsf{fma}\left(0.00726441819999999999, {x}^{6}, \mathsf{fma}\left({x}^{4}, 0.042406060400000001, \mathsf{fma}\left(x \cdot x, 0.1049934947, 1\right)\right)\right)\right) \cdot x}{\mathsf{fma}\left(1.789971 \cdot 10^{-4}, 2 \cdot {\left(x \cdot x\right)}^{6}, \mathsf{fma}\left(0.29097386390000002, {x}^{4}, \mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)\right) + \mathsf{fma}\left({x}^{6}, 0.069455576099999999, {\left(x \cdot x\right)}^{4} \cdot \left(\left(x \cdot x\right) \cdot 8.32794500000000044 \cdot 10^{-4} + 0.014000544199999999\right)\right)\right)}\\
\end{array}double f(double x) {
double r176077 = 1.0;
double r176078 = 0.1049934947;
double r176079 = x;
double r176080 = r176079 * r176079;
double r176081 = r176078 * r176080;
double r176082 = r176077 + r176081;
double r176083 = 0.0424060604;
double r176084 = r176080 * r176080;
double r176085 = r176083 * r176084;
double r176086 = r176082 + r176085;
double r176087 = 0.0072644182;
double r176088 = r176084 * r176080;
double r176089 = r176087 * r176088;
double r176090 = r176086 + r176089;
double r176091 = 0.0005064034;
double r176092 = r176088 * r176080;
double r176093 = r176091 * r176092;
double r176094 = r176090 + r176093;
double r176095 = 0.0001789971;
double r176096 = r176092 * r176080;
double r176097 = r176095 * r176096;
double r176098 = r176094 + r176097;
double r176099 = 0.7715471019;
double r176100 = r176099 * r176080;
double r176101 = r176077 + r176100;
double r176102 = 0.2909738639;
double r176103 = r176102 * r176084;
double r176104 = r176101 + r176103;
double r176105 = 0.0694555761;
double r176106 = r176105 * r176088;
double r176107 = r176104 + r176106;
double r176108 = 0.0140005442;
double r176109 = r176108 * r176092;
double r176110 = r176107 + r176109;
double r176111 = 0.0008327945;
double r176112 = r176111 * r176096;
double r176113 = r176110 + r176112;
double r176114 = 2.0;
double r176115 = r176114 * r176095;
double r176116 = r176096 * r176080;
double r176117 = r176115 * r176116;
double r176118 = r176113 + r176117;
double r176119 = r176098 / r176118;
double r176120 = r176119 * r176079;
return r176120;
}
double f(double x) {
double r176121 = x;
double r176122 = -106772652.36979772;
bool r176123 = r176121 <= r176122;
double r176124 = 653.871278443653;
bool r176125 = r176121 <= r176124;
double r176126 = !r176125;
bool r176127 = r176123 || r176126;
double r176128 = 0.15298196345929327;
double r176129 = 5.0;
double r176130 = pow(r176121, r176129);
double r176131 = r176128 / r176130;
double r176132 = 0.2514179000665375;
double r176133 = 3.0;
double r176134 = pow(r176121, r176133);
double r176135 = r176132 / r176134;
double r176136 = r176131 + r176135;
double r176137 = 0.5;
double r176138 = r176137 / r176121;
double r176139 = r176136 + r176138;
double r176140 = 0.0001789971;
double r176141 = 2.0;
double r176142 = pow(r176121, r176141);
double r176143 = r176140 * r176142;
double r176144 = 0.0005064034;
double r176145 = r176143 + r176144;
double r176146 = r176121 * r176121;
double r176147 = 4.0;
double r176148 = pow(r176146, r176147);
double r176149 = 0.0072644182;
double r176150 = 6.0;
double r176151 = pow(r176121, r176150);
double r176152 = pow(r176121, r176147);
double r176153 = 0.0424060604;
double r176154 = 0.1049934947;
double r176155 = 1.0;
double r176156 = fma(r176146, r176154, r176155);
double r176157 = fma(r176152, r176153, r176156);
double r176158 = fma(r176149, r176151, r176157);
double r176159 = fma(r176145, r176148, r176158);
double r176160 = r176159 * r176121;
double r176161 = 2.0;
double r176162 = pow(r176146, r176150);
double r176163 = r176161 * r176162;
double r176164 = 0.2909738639;
double r176165 = 0.7715471019;
double r176166 = r176165 * r176121;
double r176167 = fma(r176166, r176121, r176155);
double r176168 = fma(r176164, r176152, r176167);
double r176169 = 0.0694555761;
double r176170 = 0.0008327945;
double r176171 = r176146 * r176170;
double r176172 = 0.0140005442;
double r176173 = r176171 + r176172;
double r176174 = r176148 * r176173;
double r176175 = fma(r176151, r176169, r176174);
double r176176 = r176168 + r176175;
double r176177 = fma(r176140, r176163, r176176);
double r176178 = r176160 / r176177;
double r176179 = r176127 ? r176139 : r176178;
return r176179;
}



Bits error versus x
if x < -106772652.36979772 or 653.871278443653 < x Initial program 59.0
Simplified59.0
rmApplied *-un-lft-identity59.0
Applied associate-/r*59.0
Simplified59.0
rmApplied fma-udef59.0
Simplified59.0
Taylor expanded around inf 0.0
Simplified0.0
if -106772652.36979772 < x < 653.871278443653Initial program 0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied associate-/r*0.0
Simplified0.0
rmApplied fma-udef0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020045 +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))