\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\left|\left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left({\left(\left|x\right|\right)}^{4} \cdot \frac{1}{5} + \frac{1}{\sqrt{21}} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \frac{1}{\sqrt{21}}\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r87922 = 1.0;
double r87923 = atan2(1.0, 0.0);
double r87924 = sqrt(r87923);
double r87925 = r87922 / r87924;
double r87926 = 2.0;
double r87927 = x;
double r87928 = fabs(r87927);
double r87929 = r87926 * r87928;
double r87930 = 3.0;
double r87931 = r87926 / r87930;
double r87932 = r87928 * r87928;
double r87933 = r87932 * r87928;
double r87934 = r87931 * r87933;
double r87935 = r87929 + r87934;
double r87936 = 5.0;
double r87937 = r87922 / r87936;
double r87938 = r87933 * r87928;
double r87939 = r87938 * r87928;
double r87940 = r87937 * r87939;
double r87941 = r87935 + r87940;
double r87942 = 21.0;
double r87943 = r87922 / r87942;
double r87944 = r87939 * r87928;
double r87945 = r87944 * r87928;
double r87946 = r87943 * r87945;
double r87947 = r87941 + r87946;
double r87948 = r87925 * r87947;
double r87949 = fabs(r87948);
return r87949;
}
double f(double x) {
double r87950 = 2.0;
double r87951 = x;
double r87952 = fabs(r87951);
double r87953 = 3.0;
double r87954 = r87950 / r87953;
double r87955 = 3.0;
double r87956 = pow(r87952, r87955);
double r87957 = r87954 * r87956;
double r87958 = fma(r87950, r87952, r87957);
double r87959 = 4.0;
double r87960 = pow(r87952, r87959);
double r87961 = 1.0;
double r87962 = 5.0;
double r87963 = r87961 / r87962;
double r87964 = r87960 * r87963;
double r87965 = 1.0;
double r87966 = 21.0;
double r87967 = sqrt(r87966);
double r87968 = r87965 / r87967;
double r87969 = 6.0;
double r87970 = pow(r87952, r87969);
double r87971 = r87961 / r87967;
double r87972 = r87970 * r87971;
double r87973 = r87968 * r87972;
double r87974 = r87964 + r87973;
double r87975 = r87952 * r87974;
double r87976 = r87958 + r87975;
double r87977 = atan2(1.0, 0.0);
double r87978 = sqrt(r87977);
double r87979 = r87961 / r87978;
double r87980 = r87976 * r87979;
double r87981 = fabs(r87980);
return r87981;
}



Bits error versus x
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
:precision binary64
(fabs (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))