\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 -4225810792053910.5 \lor \neg \left(x \le 789.2064757894585227404604665935039520264\right):\\
\;\;\;\;\frac{0.1529819634592932686700805788859724998474}{{x}^{5}} + \left(\frac{0.5}{x} + \frac{0.2514179000665375252054900556686334311962}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\left(\left(\left(0.2909738639000000182122107617033179849386 \cdot {x}^{4} + \left(1 + 0.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right)\right) + {x}^{8} \cdot 0.01400054419999999938406531896362139377743\right) + 0.06945557609999999937322456844412954524159 \cdot {x}^{6}\right) + \left(\left({x}^{8} \cdot \left(x \cdot x\right)\right) \cdot 8.327945000000000442749725770852364803432 \cdot 10^{-4} + {\left({x}^{4}\right)}^{3} \cdot \left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right)\right)} \cdot \left(\left({x}^{8} \cdot \left(x \cdot x\right)\right) \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4} + \left(\left(0.007264418199999999985194687468492702464573 \cdot {\left(x \cdot x\right)}^{3} + \left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot {x}^{4}\right)\right) + 5.064034000000000243502107366566633572802 \cdot 10^{-4} \cdot {x}^{8}\right)\right)\\
\end{array}double f(double x) {
double r102197 = 1.0;
double r102198 = 0.1049934947;
double r102199 = x;
double r102200 = r102199 * r102199;
double r102201 = r102198 * r102200;
double r102202 = r102197 + r102201;
double r102203 = 0.0424060604;
double r102204 = r102200 * r102200;
double r102205 = r102203 * r102204;
double r102206 = r102202 + r102205;
double r102207 = 0.0072644182;
double r102208 = r102204 * r102200;
double r102209 = r102207 * r102208;
double r102210 = r102206 + r102209;
double r102211 = 0.0005064034;
double r102212 = r102208 * r102200;
double r102213 = r102211 * r102212;
double r102214 = r102210 + r102213;
double r102215 = 0.0001789971;
double r102216 = r102212 * r102200;
double r102217 = r102215 * r102216;
double r102218 = r102214 + r102217;
double r102219 = 0.7715471019;
double r102220 = r102219 * r102200;
double r102221 = r102197 + r102220;
double r102222 = 0.2909738639;
double r102223 = r102222 * r102204;
double r102224 = r102221 + r102223;
double r102225 = 0.0694555761;
double r102226 = r102225 * r102208;
double r102227 = r102224 + r102226;
double r102228 = 0.0140005442;
double r102229 = r102228 * r102212;
double r102230 = r102227 + r102229;
double r102231 = 0.0008327945;
double r102232 = r102231 * r102216;
double r102233 = r102230 + r102232;
double r102234 = 2.0;
double r102235 = r102234 * r102215;
double r102236 = r102216 * r102200;
double r102237 = r102235 * r102236;
double r102238 = r102233 + r102237;
double r102239 = r102218 / r102238;
double r102240 = r102239 * r102199;
return r102240;
}
double f(double x) {
double r102241 = x;
double r102242 = -4225810792053910.5;
bool r102243 = r102241 <= r102242;
double r102244 = 789.2064757894585;
bool r102245 = r102241 <= r102244;
double r102246 = !r102245;
bool r102247 = r102243 || r102246;
double r102248 = 0.15298196345929327;
double r102249 = 5.0;
double r102250 = pow(r102241, r102249);
double r102251 = r102248 / r102250;
double r102252 = 0.5;
double r102253 = r102252 / r102241;
double r102254 = 0.2514179000665375;
double r102255 = 3.0;
double r102256 = pow(r102241, r102255);
double r102257 = r102254 / r102256;
double r102258 = r102253 + r102257;
double r102259 = r102251 + r102258;
double r102260 = 0.2909738639;
double r102261 = 4.0;
double r102262 = pow(r102241, r102261);
double r102263 = r102260 * r102262;
double r102264 = 1.0;
double r102265 = 0.7715471019;
double r102266 = r102241 * r102241;
double r102267 = r102265 * r102266;
double r102268 = r102264 + r102267;
double r102269 = r102263 + r102268;
double r102270 = 8.0;
double r102271 = pow(r102241, r102270);
double r102272 = 0.0140005442;
double r102273 = r102271 * r102272;
double r102274 = r102269 + r102273;
double r102275 = 0.0694555761;
double r102276 = 6.0;
double r102277 = pow(r102241, r102276);
double r102278 = r102275 * r102277;
double r102279 = r102274 + r102278;
double r102280 = r102271 * r102266;
double r102281 = 0.0008327945;
double r102282 = r102280 * r102281;
double r102283 = pow(r102262, r102255);
double r102284 = 2.0;
double r102285 = 0.0001789971;
double r102286 = r102284 * r102285;
double r102287 = r102283 * r102286;
double r102288 = r102282 + r102287;
double r102289 = r102279 + r102288;
double r102290 = r102241 / r102289;
double r102291 = r102280 * r102285;
double r102292 = 0.0072644182;
double r102293 = pow(r102266, r102255);
double r102294 = r102292 * r102293;
double r102295 = 0.1049934947;
double r102296 = r102295 * r102266;
double r102297 = r102264 + r102296;
double r102298 = 0.0424060604;
double r102299 = r102298 * r102262;
double r102300 = r102297 + r102299;
double r102301 = r102294 + r102300;
double r102302 = 0.0005064034;
double r102303 = r102302 * r102271;
double r102304 = r102301 + r102303;
double r102305 = r102291 + r102304;
double r102306 = r102290 * r102305;
double r102307 = r102247 ? r102259 : r102306;
return r102307;
}



Bits error versus x
Results
if x < -4225810792053910.5 or 789.2064757894585 < x Initial program 60.4
Taylor expanded around inf 0.0
Simplified0.0
if -4225810792053910.5 < x < 789.2064757894585Initial program 0.0
rmApplied *-un-lft-identity0.0
Applied associate-*r*0.0
Simplified0.0
rmApplied div-inv0.0
Applied associate-*l*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019194
(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))