\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(\frac{1}{21} \cdot \left(\left(\left(\left|x\right| \cdot \left({\left(\left|x\right|\right)}^{3} \cdot \left|x\right|\right)\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) + \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)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r123773 = 1.0;
double r123774 = atan2(1.0, 0.0);
double r123775 = sqrt(r123774);
double r123776 = r123773 / r123775;
double r123777 = 2.0;
double r123778 = x;
double r123779 = fabs(r123778);
double r123780 = r123777 * r123779;
double r123781 = 3.0;
double r123782 = r123777 / r123781;
double r123783 = r123779 * r123779;
double r123784 = r123783 * r123779;
double r123785 = r123782 * r123784;
double r123786 = r123780 + r123785;
double r123787 = 5.0;
double r123788 = r123773 / r123787;
double r123789 = r123784 * r123779;
double r123790 = r123789 * r123779;
double r123791 = r123788 * r123790;
double r123792 = r123786 + r123791;
double r123793 = 21.0;
double r123794 = r123773 / r123793;
double r123795 = r123790 * r123779;
double r123796 = r123795 * r123779;
double r123797 = r123794 * r123796;
double r123798 = r123792 + r123797;
double r123799 = r123776 * r123798;
double r123800 = fabs(r123799);
return r123800;
}
double f(double x) {
double r123801 = 1.0;
double r123802 = 21.0;
double r123803 = r123801 / r123802;
double r123804 = x;
double r123805 = fabs(r123804);
double r123806 = 3.0;
double r123807 = pow(r123805, r123806);
double r123808 = r123807 * r123805;
double r123809 = r123805 * r123808;
double r123810 = r123809 * r123805;
double r123811 = r123810 * r123805;
double r123812 = r123803 * r123811;
double r123813 = 2.0;
double r123814 = r123813 * r123805;
double r123815 = 3.0;
double r123816 = r123813 / r123815;
double r123817 = r123805 * r123805;
double r123818 = r123817 * r123805;
double r123819 = r123816 * r123818;
double r123820 = r123814 + r123819;
double r123821 = 5.0;
double r123822 = r123801 / r123821;
double r123823 = r123818 * r123805;
double r123824 = r123823 * r123805;
double r123825 = r123822 * r123824;
double r123826 = r123820 + r123825;
double r123827 = r123812 + r123826;
double r123828 = atan2(1.0, 0.0);
double r123829 = sqrt(r123828);
double r123830 = r123801 / r123829;
double r123831 = r123827 * r123830;
double r123832 = fabs(r123831);
return r123832;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-down0.2
Applied pow-prod-down0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019198
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))