\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 -1062.4760730540779 \lor \neg \left(x \le 808.866852011859123\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}:\\
\;\;\;\;\frac{x \cdot \sqrt{\left({\left(x \cdot x\right)}^{4} \cdot \left(5.0640340000000002 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}\right) + \mathsf{fma}\left(0.1049934947 \cdot x, x, 1\right)\right) + {x}^{4} \cdot \left(0.042406060400000001 + \left(x \cdot x\right) \cdot 0.00726441819999999999\right)}}{\frac{\left(\left(x \cdot \left({\left(x \cdot x\right)}^{3} \cdot {x}^{3}\right)\right) \cdot \left(8.32794500000000044 \cdot 10^{-4} + \left(x \cdot x\right) \cdot \left(2 \cdot 1.789971 \cdot 10^{-4}\right)\right) + \mathsf{fma}\left(0.29097386390000002 \cdot x, {x}^{3}, \mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)\right)\right) + {x}^{6} \cdot \left(0.069455576099999999 + \left(x \cdot x\right) \cdot 0.014000544199999999\right)}{\sqrt{\left({\left(x \cdot x\right)}^{4} \cdot \left(5.0640340000000002 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}\right) + \mathsf{fma}\left(0.1049934947 \cdot x, x, 1\right)\right) + {x}^{4} \cdot \left(0.042406060400000001 + \left(x \cdot x\right) \cdot 0.00726441819999999999\right)}}}\\
\end{array}double f(double x) {
double r178638 = 1.0;
double r178639 = 0.1049934947;
double r178640 = x;
double r178641 = r178640 * r178640;
double r178642 = r178639 * r178641;
double r178643 = r178638 + r178642;
double r178644 = 0.0424060604;
double r178645 = r178641 * r178641;
double r178646 = r178644 * r178645;
double r178647 = r178643 + r178646;
double r178648 = 0.0072644182;
double r178649 = r178645 * r178641;
double r178650 = r178648 * r178649;
double r178651 = r178647 + r178650;
double r178652 = 0.0005064034;
double r178653 = r178649 * r178641;
double r178654 = r178652 * r178653;
double r178655 = r178651 + r178654;
double r178656 = 0.0001789971;
double r178657 = r178653 * r178641;
double r178658 = r178656 * r178657;
double r178659 = r178655 + r178658;
double r178660 = 0.7715471019;
double r178661 = r178660 * r178641;
double r178662 = r178638 + r178661;
double r178663 = 0.2909738639;
double r178664 = r178663 * r178645;
double r178665 = r178662 + r178664;
double r178666 = 0.0694555761;
double r178667 = r178666 * r178649;
double r178668 = r178665 + r178667;
double r178669 = 0.0140005442;
double r178670 = r178669 * r178653;
double r178671 = r178668 + r178670;
double r178672 = 0.0008327945;
double r178673 = r178672 * r178657;
double r178674 = r178671 + r178673;
double r178675 = 2.0;
double r178676 = r178675 * r178656;
double r178677 = r178657 * r178641;
double r178678 = r178676 * r178677;
double r178679 = r178674 + r178678;
double r178680 = r178659 / r178679;
double r178681 = r178680 * r178640;
return r178681;
}
double f(double x) {
double r178682 = x;
double r178683 = -1062.476073054078;
bool r178684 = r178682 <= r178683;
double r178685 = 808.8668520118591;
bool r178686 = r178682 <= r178685;
double r178687 = !r178686;
bool r178688 = r178684 || r178687;
double r178689 = 0.2514179000665375;
double r178690 = 1.0;
double r178691 = 3.0;
double r178692 = pow(r178682, r178691);
double r178693 = r178690 / r178692;
double r178694 = 0.15298196345929327;
double r178695 = 5.0;
double r178696 = pow(r178682, r178695);
double r178697 = r178690 / r178696;
double r178698 = 0.5;
double r178699 = r178690 / r178682;
double r178700 = r178698 * r178699;
double r178701 = fma(r178694, r178697, r178700);
double r178702 = fma(r178689, r178693, r178701);
double r178703 = r178682 * r178682;
double r178704 = 4.0;
double r178705 = pow(r178703, r178704);
double r178706 = 0.0005064034;
double r178707 = 0.0001789971;
double r178708 = r178703 * r178707;
double r178709 = r178706 + r178708;
double r178710 = r178705 * r178709;
double r178711 = 0.1049934947;
double r178712 = r178711 * r178682;
double r178713 = 1.0;
double r178714 = fma(r178712, r178682, r178713);
double r178715 = r178710 + r178714;
double r178716 = pow(r178682, r178704);
double r178717 = 0.0424060604;
double r178718 = 0.0072644182;
double r178719 = r178703 * r178718;
double r178720 = r178717 + r178719;
double r178721 = r178716 * r178720;
double r178722 = r178715 + r178721;
double r178723 = sqrt(r178722);
double r178724 = r178682 * r178723;
double r178725 = pow(r178703, r178691);
double r178726 = r178725 * r178692;
double r178727 = r178682 * r178726;
double r178728 = 0.0008327945;
double r178729 = 2.0;
double r178730 = r178729 * r178707;
double r178731 = r178703 * r178730;
double r178732 = r178728 + r178731;
double r178733 = r178727 * r178732;
double r178734 = 0.2909738639;
double r178735 = r178734 * r178682;
double r178736 = 0.7715471019;
double r178737 = r178736 * r178682;
double r178738 = fma(r178737, r178682, r178713);
double r178739 = fma(r178735, r178692, r178738);
double r178740 = r178733 + r178739;
double r178741 = 6.0;
double r178742 = pow(r178682, r178741);
double r178743 = 0.0694555761;
double r178744 = 0.0140005442;
double r178745 = r178703 * r178744;
double r178746 = r178743 + r178745;
double r178747 = r178742 * r178746;
double r178748 = r178740 + r178747;
double r178749 = r178748 / r178723;
double r178750 = r178724 / r178749;
double r178751 = r178688 ? r178702 : r178750;
return r178751;
}



Bits error versus x
if x < -1062.476073054078 or 808.8668520118591 < x Initial program 59.1
Taylor expanded around inf 0.0
Simplified0.0
if -1062.476073054078 < x < 808.8668520118591Initial program 0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied associate-/r*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020056 +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))