\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 -1.134957729769652701179438736289739608765:\\
\;\;\;\;\frac{0.1529819634592932686700805788859724998474}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.2514179000665375252054900556686334311962}{\left(x \cdot x\right) \cdot x}\right)\\
\mathbf{elif}\;x \le 1.139187033807632198900705589039716869593:\\
\;\;\;\;\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot 0.2657097003961509940062057921750238165259 + x \cdot 1\right) - 0.6665536072000000089587956608738750219345 \cdot \left(\left(x \cdot x\right) \cdot x\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{0.1529819634592932686700805788859724998474}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.2514179000665375252054900556686334311962}{\left(x \cdot x\right) \cdot x}\right)\\
\end{array}double f(double x) {
double r7512857 = 1.0;
double r7512858 = 0.1049934947;
double r7512859 = x;
double r7512860 = r7512859 * r7512859;
double r7512861 = r7512858 * r7512860;
double r7512862 = r7512857 + r7512861;
double r7512863 = 0.0424060604;
double r7512864 = r7512860 * r7512860;
double r7512865 = r7512863 * r7512864;
double r7512866 = r7512862 + r7512865;
double r7512867 = 0.0072644182;
double r7512868 = r7512864 * r7512860;
double r7512869 = r7512867 * r7512868;
double r7512870 = r7512866 + r7512869;
double r7512871 = 0.0005064034;
double r7512872 = r7512868 * r7512860;
double r7512873 = r7512871 * r7512872;
double r7512874 = r7512870 + r7512873;
double r7512875 = 0.0001789971;
double r7512876 = r7512872 * r7512860;
double r7512877 = r7512875 * r7512876;
double r7512878 = r7512874 + r7512877;
double r7512879 = 0.7715471019;
double r7512880 = r7512879 * r7512860;
double r7512881 = r7512857 + r7512880;
double r7512882 = 0.2909738639;
double r7512883 = r7512882 * r7512864;
double r7512884 = r7512881 + r7512883;
double r7512885 = 0.0694555761;
double r7512886 = r7512885 * r7512868;
double r7512887 = r7512884 + r7512886;
double r7512888 = 0.0140005442;
double r7512889 = r7512888 * r7512872;
double r7512890 = r7512887 + r7512889;
double r7512891 = 0.0008327945;
double r7512892 = r7512891 * r7512876;
double r7512893 = r7512890 + r7512892;
double r7512894 = 2.0;
double r7512895 = r7512894 * r7512875;
double r7512896 = r7512876 * r7512860;
double r7512897 = r7512895 * r7512896;
double r7512898 = r7512893 + r7512897;
double r7512899 = r7512878 / r7512898;
double r7512900 = r7512899 * r7512859;
return r7512900;
}
double f(double x) {
double r7512901 = x;
double r7512902 = -1.1349577297696527;
bool r7512903 = r7512901 <= r7512902;
double r7512904 = 0.15298196345929327;
double r7512905 = r7512901 * r7512901;
double r7512906 = r7512905 * r7512905;
double r7512907 = r7512906 * r7512901;
double r7512908 = r7512904 / r7512907;
double r7512909 = 0.5;
double r7512910 = r7512909 / r7512901;
double r7512911 = 0.2514179000665375;
double r7512912 = r7512905 * r7512901;
double r7512913 = r7512911 / r7512912;
double r7512914 = r7512910 + r7512913;
double r7512915 = r7512908 + r7512914;
double r7512916 = 1.1391870338076322;
bool r7512917 = r7512901 <= r7512916;
double r7512918 = 0.265709700396151;
double r7512919 = r7512907 * r7512918;
double r7512920 = 1.0;
double r7512921 = r7512901 * r7512920;
double r7512922 = r7512919 + r7512921;
double r7512923 = 0.6665536072;
double r7512924 = r7512923 * r7512912;
double r7512925 = r7512922 - r7512924;
double r7512926 = r7512917 ? r7512925 : r7512915;
double r7512927 = r7512903 ? r7512915 : r7512926;
return r7512927;
}



Bits error versus x
Results
if x < -1.1349577297696527 or 1.1391870338076322 < x Initial program 58.6
Simplified58.6
Taylor expanded around inf 0.2
Simplified0.2
if -1.1349577297696527 < x < 1.1391870338076322Initial program 0.0
Simplified0.0
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019168
(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))