\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 \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right) + \left(\left(\frac{1}{\sqrt{\sqrt{\pi}}} \cdot \left(\frac{1}{\sqrt{\sqrt{\pi}}} \cdot \frac{1}{21}\right)\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|double f(double x) {
double r109757 = 1.0;
double r109758 = atan2(1.0, 0.0);
double r109759 = sqrt(r109758);
double r109760 = r109757 / r109759;
double r109761 = 2.0;
double r109762 = x;
double r109763 = fabs(r109762);
double r109764 = r109761 * r109763;
double r109765 = 3.0;
double r109766 = r109761 / r109765;
double r109767 = r109763 * r109763;
double r109768 = r109767 * r109763;
double r109769 = r109766 * r109768;
double r109770 = r109764 + r109769;
double r109771 = 5.0;
double r109772 = r109757 / r109771;
double r109773 = r109768 * r109763;
double r109774 = r109773 * r109763;
double r109775 = r109772 * r109774;
double r109776 = r109770 + r109775;
double r109777 = 21.0;
double r109778 = r109757 / r109777;
double r109779 = r109774 * r109763;
double r109780 = r109779 * r109763;
double r109781 = r109778 * r109780;
double r109782 = r109776 + r109781;
double r109783 = r109760 * r109782;
double r109784 = fabs(r109783);
return r109784;
}
double f(double x) {
double r109785 = 1.0;
double r109786 = atan2(1.0, 0.0);
double r109787 = sqrt(r109786);
double r109788 = r109785 / r109787;
double r109789 = 5.0;
double r109790 = r109785 / r109789;
double r109791 = x;
double r109792 = fabs(r109791);
double r109793 = 3.0;
double r109794 = pow(r109792, r109793);
double r109795 = r109790 * r109794;
double r109796 = r109795 * r109792;
double r109797 = 2.0;
double r109798 = 3.0;
double r109799 = r109797 / r109798;
double r109800 = r109794 * r109799;
double r109801 = fma(r109792, r109797, r109800);
double r109802 = fma(r109796, r109792, r109801);
double r109803 = r109788 * r109802;
double r109804 = 1.0;
double r109805 = sqrt(r109787);
double r109806 = r109804 / r109805;
double r109807 = r109785 / r109805;
double r109808 = 21.0;
double r109809 = r109785 / r109808;
double r109810 = r109807 * r109809;
double r109811 = r109806 * r109810;
double r109812 = 6.0;
double r109813 = pow(r109792, r109812);
double r109814 = r109811 * r109813;
double r109815 = r109814 * r109792;
double r109816 = r109803 + r109815;
double r109817 = fabs(r109816);
return r109817;
}



Bits error versus x
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020064 +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)))))))