\left(\frac{1}{\sqrt{\pi}} \cdot e^{\left|x\right| \cdot \left|x\right|}\right) \cdot \left(\left(\left(\frac{1}{\left|x\right|} + \frac{1}{2} \cdot \left(\left(\frac{1}{\left|x\right|} \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right)\right) + \frac{3}{4} \cdot \left(\left(\left(\left(\frac{1}{\left|x\right|} \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right)\right) + \frac{15}{8} \cdot \left(\left(\left(\left(\left(\left(\frac{1}{\left|x\right|} \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right) \cdot \frac{1}{\left|x\right|}\right)\right)1 \cdot \left(\left(e^{{\left(\left|x\right|\right)}^{2}} \cdot \left(\left(\frac{0.5}{{\left(\left|x\right|\right)}^{3}} + \frac{0.75}{{\left(\left|x\right|\right)}^{5}}\right) + \left(\frac{1.875}{{\left(\left|x\right|\right)}^{7}} + \frac{1}{\left|x\right|}\right)\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right)double f(double x) {
double r197105 = 1.0;
double r197106 = atan2(1.0, 0.0);
double r197107 = sqrt(r197106);
double r197108 = r197105 / r197107;
double r197109 = x;
double r197110 = fabs(r197109);
double r197111 = r197110 * r197110;
double r197112 = exp(r197111);
double r197113 = r197108 * r197112;
double r197114 = r197105 / r197110;
double r197115 = 2.0;
double r197116 = r197105 / r197115;
double r197117 = r197114 * r197114;
double r197118 = r197117 * r197114;
double r197119 = r197116 * r197118;
double r197120 = r197114 + r197119;
double r197121 = 3.0;
double r197122 = 4.0;
double r197123 = r197121 / r197122;
double r197124 = r197118 * r197114;
double r197125 = r197124 * r197114;
double r197126 = r197123 * r197125;
double r197127 = r197120 + r197126;
double r197128 = 15.0;
double r197129 = 8.0;
double r197130 = r197128 / r197129;
double r197131 = r197125 * r197114;
double r197132 = r197131 * r197114;
double r197133 = r197130 * r197132;
double r197134 = r197127 + r197133;
double r197135 = r197113 * r197134;
return r197135;
}
double f(double x) {
double r197136 = 1.0;
double r197137 = x;
double r197138 = fabs(r197137);
double r197139 = 2.0;
double r197140 = pow(r197138, r197139);
double r197141 = exp(r197140);
double r197142 = 0.5;
double r197143 = 3.0;
double r197144 = pow(r197138, r197143);
double r197145 = r197142 / r197144;
double r197146 = 0.75;
double r197147 = 5.0;
double r197148 = pow(r197138, r197147);
double r197149 = r197146 / r197148;
double r197150 = r197145 + r197149;
double r197151 = 1.875;
double r197152 = 7.0;
double r197153 = pow(r197138, r197152);
double r197154 = r197151 / r197153;
double r197155 = r197136 / r197138;
double r197156 = r197154 + r197155;
double r197157 = r197150 + r197156;
double r197158 = r197141 * r197157;
double r197159 = 1.0;
double r197160 = atan2(1.0, 0.0);
double r197161 = r197159 / r197160;
double r197162 = sqrt(r197161);
double r197163 = r197158 * r197162;
double r197164 = r197136 * r197163;
return r197164;
}



Bits error versus x
Results
Initial program 1.5
Simplified1.1
rmApplied div-inv1.1
Applied unpow-prod-down1.1
Simplified1.1
Simplified0.7
Taylor expanded around 0 0.6
rmApplied *-un-lft-identity0.6
Applied associate-*l*0.6
Simplified0.5
Final simplification0.5
herbie shell --seed 2020043
(FPCore (x)
:name "Jmat.Real.erfi, branch x greater than or equal to 5"
:precision binary64
(* (* (/ 1 (sqrt PI)) (exp (* (fabs x) (fabs x)))) (+ (+ (+ (/ 1 (fabs x)) (* (/ 1 2) (* (* (/ 1 (fabs x)) (/ 1 (fabs x))) (/ 1 (fabs x))))) (* (/ 3 4) (* (* (* (* (/ 1 (fabs x)) (/ 1 (fabs x))) (/ 1 (fabs x))) (/ 1 (fabs x))) (/ 1 (fabs x))))) (* (/ 15 8) (* (* (* (* (* (* (/ 1 (fabs x)) (/ 1 (fabs x))) (/ 1 (fabs x))) (/ 1 (fabs x))) (/ 1 (fabs x))) (/ 1 (fabs x))) (/ 1 (fabs x)))))))