\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|\frac{1}{\sqrt{\pi}} \cdot \left(\frac{\sqrt{1}}{{21}^{\frac{2}{3}}} \cdot \left(\left|x\right| \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{21}} \cdot {\left(\left|x\right|\right)}^{6}\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)\right|double f(double x) {
double r109722 = 1.0;
double r109723 = atan2(1.0, 0.0);
double r109724 = sqrt(r109723);
double r109725 = r109722 / r109724;
double r109726 = 2.0;
double r109727 = x;
double r109728 = fabs(r109727);
double r109729 = r109726 * r109728;
double r109730 = 3.0;
double r109731 = r109726 / r109730;
double r109732 = r109728 * r109728;
double r109733 = r109732 * r109728;
double r109734 = r109731 * r109733;
double r109735 = r109729 + r109734;
double r109736 = 5.0;
double r109737 = r109722 / r109736;
double r109738 = r109733 * r109728;
double r109739 = r109738 * r109728;
double r109740 = r109737 * r109739;
double r109741 = r109735 + r109740;
double r109742 = 21.0;
double r109743 = r109722 / r109742;
double r109744 = r109739 * r109728;
double r109745 = r109744 * r109728;
double r109746 = r109743 * r109745;
double r109747 = r109741 + r109746;
double r109748 = r109725 * r109747;
double r109749 = fabs(r109748);
return r109749;
}
double f(double x) {
double r109750 = 1.0;
double r109751 = atan2(1.0, 0.0);
double r109752 = sqrt(r109751);
double r109753 = r109750 / r109752;
double r109754 = sqrt(r109750);
double r109755 = 21.0;
double r109756 = 0.6666666666666666;
double r109757 = pow(r109755, r109756);
double r109758 = r109754 / r109757;
double r109759 = x;
double r109760 = fabs(r109759);
double r109761 = cbrt(r109755);
double r109762 = r109754 / r109761;
double r109763 = 6.0;
double r109764 = pow(r109760, r109763);
double r109765 = r109762 * r109764;
double r109766 = r109760 * r109765;
double r109767 = r109758 * r109766;
double r109768 = 2.0;
double r109769 = r109768 * r109760;
double r109770 = 3.0;
double r109771 = r109768 / r109770;
double r109772 = r109760 * r109760;
double r109773 = r109772 * r109760;
double r109774 = r109771 * r109773;
double r109775 = r109769 + r109774;
double r109776 = 5.0;
double r109777 = r109750 / r109776;
double r109778 = r109773 * r109760;
double r109779 = r109778 * r109760;
double r109780 = r109777 * r109779;
double r109781 = r109775 + r109780;
double r109782 = r109767 + r109781;
double r109783 = r109753 * r109782;
double r109784 = fabs(r109783);
return r109784;
}



Bits error versus x
Results
Initial program 0.2
rmApplied add-cube-cbrt0.3
Applied add-sqr-sqrt0.3
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
rmApplied pow1/30.2
Applied pow1/30.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019208
(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)))))))