\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|\sqrt{\frac{1}{\pi}} \cdot \mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, \mathsf{fma}\left(\frac{2}{3}, \left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|, \frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right|double f(double x) {
double r7276765 = 1.0;
double r7276766 = atan2(1.0, 0.0);
double r7276767 = sqrt(r7276766);
double r7276768 = r7276765 / r7276767;
double r7276769 = 2.0;
double r7276770 = x;
double r7276771 = fabs(r7276770);
double r7276772 = r7276769 * r7276771;
double r7276773 = 3.0;
double r7276774 = r7276769 / r7276773;
double r7276775 = r7276771 * r7276771;
double r7276776 = r7276775 * r7276771;
double r7276777 = r7276774 * r7276776;
double r7276778 = r7276772 + r7276777;
double r7276779 = 5.0;
double r7276780 = r7276765 / r7276779;
double r7276781 = r7276776 * r7276771;
double r7276782 = r7276781 * r7276771;
double r7276783 = r7276780 * r7276782;
double r7276784 = r7276778 + r7276783;
double r7276785 = 21.0;
double r7276786 = r7276765 / r7276785;
double r7276787 = r7276782 * r7276771;
double r7276788 = r7276787 * r7276771;
double r7276789 = r7276786 * r7276788;
double r7276790 = r7276784 + r7276789;
double r7276791 = r7276768 * r7276790;
double r7276792 = fabs(r7276791);
return r7276792;
}
double f(double x) {
double r7276793 = 1.0;
double r7276794 = atan2(1.0, 0.0);
double r7276795 = r7276793 / r7276794;
double r7276796 = sqrt(r7276795);
double r7276797 = 0.2;
double r7276798 = x;
double r7276799 = fabs(r7276798);
double r7276800 = 5.0;
double r7276801 = pow(r7276799, r7276800);
double r7276802 = 2.0;
double r7276803 = 0.6666666666666666;
double r7276804 = r7276799 * r7276799;
double r7276805 = r7276804 * r7276799;
double r7276806 = 0.047619047619047616;
double r7276807 = 7.0;
double r7276808 = pow(r7276799, r7276807);
double r7276809 = r7276806 * r7276808;
double r7276810 = fma(r7276803, r7276805, r7276809);
double r7276811 = fma(r7276802, r7276799, r7276810);
double r7276812 = fma(r7276797, r7276801, r7276811);
double r7276813 = r7276796 * r7276812;
double r7276814 = fabs(r7276813);
return r7276814;
}



Bits error versus x
Initial program 0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019158 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(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)))))))