double f(double x) {
double r9938653 = 1.0;
double r9938654 = atan2(1.0, 0.0);
double r9938655 = sqrt(r9938654);
double r9938656 = r9938653 / r9938655;
double r9938657 = 2.0;
double r9938658 = x;
double r9938659 = fabs(r9938658);
double r9938660 = r9938657 * r9938659;
double r9938661 = 3.0;
double r9938662 = r9938657 / r9938661;
double r9938663 = r9938659 * r9938659;
double r9938664 = r9938663 * r9938659;
double r9938665 = r9938662 * r9938664;
double r9938666 = r9938660 + r9938665;
double r9938667 = 5.0;
double r9938668 = r9938653 / r9938667;
double r9938669 = r9938664 * r9938659;
double r9938670 = r9938669 * r9938659;
double r9938671 = r9938668 * r9938670;
double r9938672 = r9938666 + r9938671;
double r9938673 = 21.0;
double r9938674 = r9938653 / r9938673;
double r9938675 = r9938670 * r9938659;
double r9938676 = r9938675 * r9938659;
double r9938677 = r9938674 * r9938676;
double r9938678 = r9938672 + r9938677;
double r9938679 = r9938656 * r9938678;
double r9938680 = fabs(r9938679);
return r9938680;
}
double f(double x) {
double r9938681 = 0.047619047619047616;
double r9938682 = x;
double r9938683 = fabs(r9938682);
double r9938684 = 7.0;
double r9938685 = pow(r9938683, r9938684);
double r9938686 = r9938681 * r9938685;
double r9938687 = 0.2;
double r9938688 = 5.0;
double r9938689 = pow(r9938683, r9938688);
double r9938690 = r9938687 * r9938689;
double r9938691 = 0.6666666666666666;
double r9938692 = r9938691 * r9938683;
double r9938693 = r9938692 * r9938683;
double r9938694 = 2.0;
double r9938695 = r9938693 + r9938694;
double r9938696 = r9938695 * r9938683;
double r9938697 = r9938690 + r9938696;
double r9938698 = r9938686 + r9938697;
double r9938699 = 1.0;
double r9938700 = atan2(1.0, 0.0);
double r9938701 = r9938699 / r9938700;
double r9938702 = sqrt(r9938701);
double r9938703 = r9938698 * r9938702;
double r9938704 = fabs(r9938703);
return r9938704;
}
\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|x\right|\right)}^{7} + \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left(\left(\frac{2}{3} \cdot \left|x\right|\right) \cdot \left|x\right| + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|


Bits error versus x
Initial program 0.2
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019102
(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)))))))