\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 -15539153.0651303846 \lor \neg \left(x \le 20637714.8587887026\right):\\
\;\;\;\;\frac{0.1529819634592933}{{x}^{5}} + \left(\frac{0.5}{x} + \frac{0.25141790006653753}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot {x}^{2}\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 \left(x \cdot \sqrt{\frac{\mathsf{fma}\left(1.789971 \cdot 10^{-4}, {x}^{6} \cdot {x}^{4}, \mathsf{fma}\left({x}^{8}, 5.0640340000000002 \cdot 10^{-4}, \mathsf{fma}\left(0.00726441819999999999, {x}^{6}, \mathsf{fma}\left({x}^{4}, 0.042406060400000001, \mathsf{fma}\left(0.1049934947, x \cdot x, 1\right)\right)\right)\right)\right)}{\mathsf{fma}\left(2 \cdot 1.789971 \cdot 10^{-4}, {x}^{6} \cdot {x}^{6}, \mathsf{fma}\left({x}^{6} \cdot {x}^{4}, 8.32794500000000044 \cdot 10^{-4}, \mathsf{fma}\left(0.014000544199999999, {x}^{8}, \mathsf{fma}\left(0.069455576099999999, {x}^{6}, \mathsf{fma}\left({x}^{4}, 0.29097386390000002, \mathsf{fma}\left(0.77154710189999998, {x}^{2}, 1\right)\right)\right)\right)\right)\right)}}\right)\\
\end{array}double f(double x) {
double r202681 = 1.0;
double r202682 = 0.1049934947;
double r202683 = x;
double r202684 = r202683 * r202683;
double r202685 = r202682 * r202684;
double r202686 = r202681 + r202685;
double r202687 = 0.0424060604;
double r202688 = r202684 * r202684;
double r202689 = r202687 * r202688;
double r202690 = r202686 + r202689;
double r202691 = 0.0072644182;
double r202692 = r202688 * r202684;
double r202693 = r202691 * r202692;
double r202694 = r202690 + r202693;
double r202695 = 0.0005064034;
double r202696 = r202692 * r202684;
double r202697 = r202695 * r202696;
double r202698 = r202694 + r202697;
double r202699 = 0.0001789971;
double r202700 = r202696 * r202684;
double r202701 = r202699 * r202700;
double r202702 = r202698 + r202701;
double r202703 = 0.7715471019;
double r202704 = r202703 * r202684;
double r202705 = r202681 + r202704;
double r202706 = 0.2909738639;
double r202707 = r202706 * r202688;
double r202708 = r202705 + r202707;
double r202709 = 0.0694555761;
double r202710 = r202709 * r202692;
double r202711 = r202708 + r202710;
double r202712 = 0.0140005442;
double r202713 = r202712 * r202696;
double r202714 = r202711 + r202713;
double r202715 = 0.0008327945;
double r202716 = r202715 * r202700;
double r202717 = r202714 + r202716;
double r202718 = 2.0;
double r202719 = r202718 * r202699;
double r202720 = r202700 * r202684;
double r202721 = r202719 * r202720;
double r202722 = r202717 + r202721;
double r202723 = r202702 / r202722;
double r202724 = r202723 * r202683;
return r202724;
}
double f(double x) {
double r202725 = x;
double r202726 = -15539153.065130385;
bool r202727 = r202725 <= r202726;
double r202728 = 20637714.858788703;
bool r202729 = r202725 <= r202728;
double r202730 = !r202729;
bool r202731 = r202727 || r202730;
double r202732 = 0.15298196345929327;
double r202733 = 5.0;
double r202734 = pow(r202725, r202733);
double r202735 = r202732 / r202734;
double r202736 = 0.5;
double r202737 = r202736 / r202725;
double r202738 = 0.2514179000665375;
double r202739 = 3.0;
double r202740 = pow(r202725, r202739);
double r202741 = r202738 / r202740;
double r202742 = r202737 + r202741;
double r202743 = r202735 + r202742;
double r202744 = 1.0;
double r202745 = 0.1049934947;
double r202746 = 2.0;
double r202747 = pow(r202725, r202746);
double r202748 = r202745 * r202747;
double r202749 = r202744 + r202748;
double r202750 = 0.0424060604;
double r202751 = r202725 * r202725;
double r202752 = r202751 * r202751;
double r202753 = r202750 * r202752;
double r202754 = r202749 + r202753;
double r202755 = 0.0072644182;
double r202756 = r202752 * r202751;
double r202757 = r202755 * r202756;
double r202758 = r202754 + r202757;
double r202759 = 0.0005064034;
double r202760 = r202756 * r202751;
double r202761 = r202759 * r202760;
double r202762 = r202758 + r202761;
double r202763 = 0.0001789971;
double r202764 = r202760 * r202751;
double r202765 = r202763 * r202764;
double r202766 = r202762 + r202765;
double r202767 = 0.7715471019;
double r202768 = r202767 * r202751;
double r202769 = r202744 + r202768;
double r202770 = 0.2909738639;
double r202771 = r202770 * r202752;
double r202772 = r202769 + r202771;
double r202773 = 0.0694555761;
double r202774 = r202773 * r202756;
double r202775 = r202772 + r202774;
double r202776 = 0.0140005442;
double r202777 = r202776 * r202760;
double r202778 = r202775 + r202777;
double r202779 = 0.0008327945;
double r202780 = r202779 * r202764;
double r202781 = r202778 + r202780;
double r202782 = 2.0;
double r202783 = r202782 * r202763;
double r202784 = r202764 * r202751;
double r202785 = r202783 * r202784;
double r202786 = r202781 + r202785;
double r202787 = r202766 / r202786;
double r202788 = sqrt(r202787);
double r202789 = 6.0;
double r202790 = pow(r202725, r202789);
double r202791 = 4.0;
double r202792 = pow(r202725, r202791);
double r202793 = r202790 * r202792;
double r202794 = 8.0;
double r202795 = pow(r202725, r202794);
double r202796 = fma(r202745, r202751, r202744);
double r202797 = fma(r202792, r202750, r202796);
double r202798 = fma(r202755, r202790, r202797);
double r202799 = fma(r202795, r202759, r202798);
double r202800 = fma(r202763, r202793, r202799);
double r202801 = r202790 * r202790;
double r202802 = fma(r202767, r202747, r202744);
double r202803 = fma(r202792, r202770, r202802);
double r202804 = fma(r202773, r202790, r202803);
double r202805 = fma(r202776, r202795, r202804);
double r202806 = fma(r202793, r202779, r202805);
double r202807 = fma(r202783, r202801, r202806);
double r202808 = r202800 / r202807;
double r202809 = sqrt(r202808);
double r202810 = r202725 * r202809;
double r202811 = r202788 * r202810;
double r202812 = r202731 ? r202743 : r202811;
return r202812;
}



Bits error versus x
if x < -15539153.065130385 or 20637714.858788703 < x Initial program 59.6
Taylor expanded around inf 0.0
Simplified0.0
if -15539153.065130385 < x < 20637714.858788703Initial program 0.0
Taylor expanded around 0 0.0
rmApplied add-sqr-sqrt0.0
Applied associate-*l*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020043 +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))