\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(\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|x\right|\right)}^{3} \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r129641 = 1.0;
double r129642 = atan2(1.0, 0.0);
double r129643 = sqrt(r129642);
double r129644 = r129641 / r129643;
double r129645 = 2.0;
double r129646 = x;
double r129647 = fabs(r129646);
double r129648 = r129645 * r129647;
double r129649 = 3.0;
double r129650 = r129645 / r129649;
double r129651 = r129647 * r129647;
double r129652 = r129651 * r129647;
double r129653 = r129650 * r129652;
double r129654 = r129648 + r129653;
double r129655 = 5.0;
double r129656 = r129641 / r129655;
double r129657 = r129652 * r129647;
double r129658 = r129657 * r129647;
double r129659 = r129656 * r129658;
double r129660 = r129654 + r129659;
double r129661 = 21.0;
double r129662 = r129641 / r129661;
double r129663 = r129658 * r129647;
double r129664 = r129663 * r129647;
double r129665 = r129662 * r129664;
double r129666 = r129660 + r129665;
double r129667 = r129644 * r129666;
double r129668 = fabs(r129667);
return r129668;
}
double f(double x) {
double r129669 = 1.0;
double r129670 = atan2(1.0, 0.0);
double r129671 = sqrt(r129670);
double r129672 = r129669 / r129671;
double r129673 = 2.0;
double r129674 = x;
double r129675 = fabs(r129674);
double r129676 = r129673 * r129675;
double r129677 = 3.0;
double r129678 = r129673 / r129677;
double r129679 = r129675 * r129675;
double r129680 = r129679 * r129675;
double r129681 = r129678 * r129680;
double r129682 = r129676 + r129681;
double r129683 = 5.0;
double r129684 = r129669 / r129683;
double r129685 = r129680 * r129675;
double r129686 = r129685 * r129675;
double r129687 = r129684 * r129686;
double r129688 = r129682 + r129687;
double r129689 = 21.0;
double r129690 = r129669 / r129689;
double r129691 = 3.0;
double r129692 = pow(r129675, r129691);
double r129693 = r129692 * r129675;
double r129694 = r129693 * r129675;
double r129695 = r129694 * r129675;
double r129696 = r129695 * r129675;
double r129697 = r129690 * r129696;
double r129698 = r129688 + r129697;
double r129699 = r129672 * r129698;
double r129700 = fabs(r129699);
return r129700;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019351 +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)))))))