\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \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) + 0.0001789971 \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.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \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) + 0.0008327945 \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 0.0001789971\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 -1071220122.1192065:\\
\;\;\;\;\frac{0.15298196345929327}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)} + \left(\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \frac{0.5}{x}\right)\\
\mathbf{elif}\;x \le 687.2620889243847:\\
\;\;\;\;\frac{\left(\left(\left(0.0424060604 + \left(x \cdot x\right) \cdot 0.0072644182\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + \left(\left(x \cdot x\right) \cdot 0.1049934947 + 1\right)\right) \cdot \left(\left(0.0424060604 + \left(x \cdot x\right) \cdot 0.0072644182\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + \left(\left(x \cdot x\right) \cdot 0.1049934947 + 1\right)\right) - \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0001789971 \cdot \left(x \cdot x\right) + 0.0005064034\right)\right) \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0001789971 \cdot \left(x \cdot x\right) + 0.0005064034\right)\right)\right) \cdot x}{\left(\left(\left(0.0424060604 + \left(x \cdot x\right) \cdot 0.0072644182\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + \left(\left(x \cdot x\right) \cdot 0.1049934947 + 1\right)\right) - \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0001789971 \cdot \left(x \cdot x\right) + 0.0005064034\right)\right) \cdot \left(\left(1 + \left(x \cdot x\right) \cdot \left(\left(0.7715471019 + \left(x \cdot x\right) \cdot 0.2909738639\right) + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(0.0140005442 \cdot \left(x \cdot x\right) + 0.0694555761\right)\right)\right) + \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(\left(0.0001789971 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot 2 + \left(x \cdot x\right) \cdot 0.0008327945\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.15298196345929327}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)} + \left(\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \frac{0.5}{x}\right)\\
\end{array}double f(double x) {
double r11570884 = 1.0;
double r11570885 = 0.1049934947;
double r11570886 = x;
double r11570887 = r11570886 * r11570886;
double r11570888 = r11570885 * r11570887;
double r11570889 = r11570884 + r11570888;
double r11570890 = 0.0424060604;
double r11570891 = r11570887 * r11570887;
double r11570892 = r11570890 * r11570891;
double r11570893 = r11570889 + r11570892;
double r11570894 = 0.0072644182;
double r11570895 = r11570891 * r11570887;
double r11570896 = r11570894 * r11570895;
double r11570897 = r11570893 + r11570896;
double r11570898 = 0.0005064034;
double r11570899 = r11570895 * r11570887;
double r11570900 = r11570898 * r11570899;
double r11570901 = r11570897 + r11570900;
double r11570902 = 0.0001789971;
double r11570903 = r11570899 * r11570887;
double r11570904 = r11570902 * r11570903;
double r11570905 = r11570901 + r11570904;
double r11570906 = 0.7715471019;
double r11570907 = r11570906 * r11570887;
double r11570908 = r11570884 + r11570907;
double r11570909 = 0.2909738639;
double r11570910 = r11570909 * r11570891;
double r11570911 = r11570908 + r11570910;
double r11570912 = 0.0694555761;
double r11570913 = r11570912 * r11570895;
double r11570914 = r11570911 + r11570913;
double r11570915 = 0.0140005442;
double r11570916 = r11570915 * r11570899;
double r11570917 = r11570914 + r11570916;
double r11570918 = 0.0008327945;
double r11570919 = r11570918 * r11570903;
double r11570920 = r11570917 + r11570919;
double r11570921 = 2.0;
double r11570922 = r11570921 * r11570902;
double r11570923 = r11570903 * r11570887;
double r11570924 = r11570922 * r11570923;
double r11570925 = r11570920 + r11570924;
double r11570926 = r11570905 / r11570925;
double r11570927 = r11570926 * r11570886;
return r11570927;
}
double f(double x) {
double r11570928 = x;
double r11570929 = -1071220122.1192065;
bool r11570930 = r11570928 <= r11570929;
double r11570931 = 0.15298196345929327;
double r11570932 = r11570928 * r11570928;
double r11570933 = r11570932 * r11570928;
double r11570934 = r11570932 * r11570933;
double r11570935 = r11570931 / r11570934;
double r11570936 = 0.2514179000665375;
double r11570937 = r11570936 / r11570933;
double r11570938 = 0.5;
double r11570939 = r11570938 / r11570928;
double r11570940 = r11570937 + r11570939;
double r11570941 = r11570935 + r11570940;
double r11570942 = 687.2620889243847;
bool r11570943 = r11570928 <= r11570942;
double r11570944 = 0.0424060604;
double r11570945 = 0.0072644182;
double r11570946 = r11570932 * r11570945;
double r11570947 = r11570944 + r11570946;
double r11570948 = r11570932 * r11570932;
double r11570949 = r11570947 * r11570948;
double r11570950 = 0.1049934947;
double r11570951 = r11570932 * r11570950;
double r11570952 = 1.0;
double r11570953 = r11570951 + r11570952;
double r11570954 = r11570949 + r11570953;
double r11570955 = r11570954 * r11570954;
double r11570956 = r11570948 * r11570948;
double r11570957 = 0.0001789971;
double r11570958 = r11570957 * r11570932;
double r11570959 = 0.0005064034;
double r11570960 = r11570958 + r11570959;
double r11570961 = r11570956 * r11570960;
double r11570962 = r11570961 * r11570961;
double r11570963 = r11570955 - r11570962;
double r11570964 = r11570963 * r11570928;
double r11570965 = r11570954 - r11570961;
double r11570966 = 0.7715471019;
double r11570967 = 0.2909738639;
double r11570968 = r11570932 * r11570967;
double r11570969 = r11570966 + r11570968;
double r11570970 = 0.0140005442;
double r11570971 = r11570970 * r11570932;
double r11570972 = 0.0694555761;
double r11570973 = r11570971 + r11570972;
double r11570974 = r11570948 * r11570973;
double r11570975 = r11570969 + r11570974;
double r11570976 = r11570932 * r11570975;
double r11570977 = r11570952 + r11570976;
double r11570978 = r11570957 * r11570948;
double r11570979 = 2.0;
double r11570980 = r11570978 * r11570979;
double r11570981 = 0.0008327945;
double r11570982 = r11570932 * r11570981;
double r11570983 = r11570980 + r11570982;
double r11570984 = r11570956 * r11570983;
double r11570985 = r11570977 + r11570984;
double r11570986 = r11570965 * r11570985;
double r11570987 = r11570964 / r11570986;
double r11570988 = r11570943 ? r11570987 : r11570941;
double r11570989 = r11570930 ? r11570941 : r11570988;
return r11570989;
}



Bits error versus x
Results
if x < -1071220122.1192065 or 687.2620889243847 < x Initial program 58.9
Simplified58.9
Taylor expanded around inf 0.0
Simplified0.0
if -1071220122.1192065 < x < 687.2620889243847Initial program 0.0
Simplified0.0
rmApplied associate-*l/0.0
rmApplied flip-+0.0
Applied associate-*l/0.0
Applied associate-/l/0.0
Final simplification0.0
herbie shell --seed 2019132
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 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))