\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.147765270182274 \lor \neg \left(x \le 1.1589205875478283\right):\\
\;\;\;\;0.25141790006653753 \cdot \frac{1}{{x}^{3}} + \left(0.1529819634592933 \cdot \frac{1}{{x}^{5}} + 0.5 \cdot \frac{1}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(1 \cdot x + 0.265709700396150994 \cdot {x}^{5}\right) - 0.66655360720000001 \cdot {x}^{3}\\
\end{array}double f(double x) {
double r160151 = 1.0;
double r160152 = 0.1049934947;
double r160153 = x;
double r160154 = r160153 * r160153;
double r160155 = r160152 * r160154;
double r160156 = r160151 + r160155;
double r160157 = 0.0424060604;
double r160158 = r160154 * r160154;
double r160159 = r160157 * r160158;
double r160160 = r160156 + r160159;
double r160161 = 0.0072644182;
double r160162 = r160158 * r160154;
double r160163 = r160161 * r160162;
double r160164 = r160160 + r160163;
double r160165 = 0.0005064034;
double r160166 = r160162 * r160154;
double r160167 = r160165 * r160166;
double r160168 = r160164 + r160167;
double r160169 = 0.0001789971;
double r160170 = r160166 * r160154;
double r160171 = r160169 * r160170;
double r160172 = r160168 + r160171;
double r160173 = 0.7715471019;
double r160174 = r160173 * r160154;
double r160175 = r160151 + r160174;
double r160176 = 0.2909738639;
double r160177 = r160176 * r160158;
double r160178 = r160175 + r160177;
double r160179 = 0.0694555761;
double r160180 = r160179 * r160162;
double r160181 = r160178 + r160180;
double r160182 = 0.0140005442;
double r160183 = r160182 * r160166;
double r160184 = r160181 + r160183;
double r160185 = 0.0008327945;
double r160186 = r160185 * r160170;
double r160187 = r160184 + r160186;
double r160188 = 2.0;
double r160189 = r160188 * r160169;
double r160190 = r160170 * r160154;
double r160191 = r160189 * r160190;
double r160192 = r160187 + r160191;
double r160193 = r160172 / r160192;
double r160194 = r160193 * r160153;
return r160194;
}
double f(double x) {
double r160195 = x;
double r160196 = -1.147765270182274;
bool r160197 = r160195 <= r160196;
double r160198 = 1.1589205875478283;
bool r160199 = r160195 <= r160198;
double r160200 = !r160199;
bool r160201 = r160197 || r160200;
double r160202 = 0.2514179000665375;
double r160203 = 1.0;
double r160204 = 3.0;
double r160205 = pow(r160195, r160204);
double r160206 = r160203 / r160205;
double r160207 = r160202 * r160206;
double r160208 = 0.15298196345929327;
double r160209 = 5.0;
double r160210 = pow(r160195, r160209);
double r160211 = r160203 / r160210;
double r160212 = r160208 * r160211;
double r160213 = 0.5;
double r160214 = r160203 / r160195;
double r160215 = r160213 * r160214;
double r160216 = r160212 + r160215;
double r160217 = r160207 + r160216;
double r160218 = 1.0;
double r160219 = r160218 * r160195;
double r160220 = 0.265709700396151;
double r160221 = r160220 * r160210;
double r160222 = r160219 + r160221;
double r160223 = 0.6665536072;
double r160224 = r160223 * r160205;
double r160225 = r160222 - r160224;
double r160226 = r160201 ? r160217 : r160225;
return r160226;
}



Bits error versus x
Results
if x < -1.147765270182274 or 1.1589205875478283 < x Initial program 58.5
Taylor expanded around inf 0.4
if -1.147765270182274 < x < 1.1589205875478283Initial program 0.0
rmApplied clear-num0.0
Simplified0.0
Taylor expanded around 0 0.1
Final simplification0.2
herbie shell --seed 2020046
(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))