Average Error: 0.2 → 0.2
Time: 22.8s
Precision: 64
\[\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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\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(\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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|
double f(double x) {
        double r5467642 = 1.0;
        double r5467643 = atan2(1.0, 0.0);
        double r5467644 = sqrt(r5467643);
        double r5467645 = r5467642 / r5467644;
        double r5467646 = 2.0;
        double r5467647 = x;
        double r5467648 = fabs(r5467647);
        double r5467649 = r5467646 * r5467648;
        double r5467650 = 3.0;
        double r5467651 = r5467646 / r5467650;
        double r5467652 = r5467648 * r5467648;
        double r5467653 = r5467652 * r5467648;
        double r5467654 = r5467651 * r5467653;
        double r5467655 = r5467649 + r5467654;
        double r5467656 = 5.0;
        double r5467657 = r5467642 / r5467656;
        double r5467658 = r5467653 * r5467648;
        double r5467659 = r5467658 * r5467648;
        double r5467660 = r5467657 * r5467659;
        double r5467661 = r5467655 + r5467660;
        double r5467662 = 21.0;
        double r5467663 = r5467642 / r5467662;
        double r5467664 = r5467659 * r5467648;
        double r5467665 = r5467664 * r5467648;
        double r5467666 = r5467663 * r5467665;
        double r5467667 = r5467661 + r5467666;
        double r5467668 = r5467645 * r5467667;
        double r5467669 = fabs(r5467668);
        return r5467669;
}

double f(double x) {
        double r5467670 = 1.0;
        double r5467671 = atan2(1.0, 0.0);
        double r5467672 = sqrt(r5467671);
        double r5467673 = r5467670 / r5467672;
        double r5467674 = 5.0;
        double r5467675 = r5467670 / r5467674;
        double r5467676 = x;
        double r5467677 = fabs(r5467676);
        double r5467678 = r5467677 * r5467677;
        double r5467679 = r5467678 * r5467677;
        double r5467680 = r5467679 * r5467677;
        double r5467681 = r5467677 * r5467680;
        double r5467682 = r5467675 * r5467681;
        double r5467683 = 2.0;
        double r5467684 = r5467677 * r5467683;
        double r5467685 = 3.0;
        double r5467686 = r5467683 / r5467685;
        double r5467687 = r5467679 * r5467686;
        double r5467688 = r5467684 + r5467687;
        double r5467689 = r5467682 + r5467688;
        double r5467690 = r5467677 * r5467681;
        double r5467691 = r5467677 * r5467690;
        double r5467692 = 21.0;
        double r5467693 = r5467670 / r5467692;
        double r5467694 = r5467691 * r5467693;
        double r5467695 = r5467689 + r5467694;
        double r5467696 = r5467673 * r5467695;
        double r5467697 = fabs(r5467696);
        return r5467697;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\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|\]
  2. Final simplification0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|\]

Reproduce

herbie shell --seed 2019171 
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  (fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))