Average Error: 0.2 → 0.2
Time: 32.4s
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 r7660683 = 1.0;
        double r7660684 = atan2(1.0, 0.0);
        double r7660685 = sqrt(r7660684);
        double r7660686 = r7660683 / r7660685;
        double r7660687 = 2.0;
        double r7660688 = x;
        double r7660689 = fabs(r7660688);
        double r7660690 = r7660687 * r7660689;
        double r7660691 = 3.0;
        double r7660692 = r7660687 / r7660691;
        double r7660693 = r7660689 * r7660689;
        double r7660694 = r7660693 * r7660689;
        double r7660695 = r7660692 * r7660694;
        double r7660696 = r7660690 + r7660695;
        double r7660697 = 5.0;
        double r7660698 = r7660683 / r7660697;
        double r7660699 = r7660694 * r7660689;
        double r7660700 = r7660699 * r7660689;
        double r7660701 = r7660698 * r7660700;
        double r7660702 = r7660696 + r7660701;
        double r7660703 = 21.0;
        double r7660704 = r7660683 / r7660703;
        double r7660705 = r7660700 * r7660689;
        double r7660706 = r7660705 * r7660689;
        double r7660707 = r7660704 * r7660706;
        double r7660708 = r7660702 + r7660707;
        double r7660709 = r7660686 * r7660708;
        double r7660710 = fabs(r7660709);
        return r7660710;
}

double f(double x) {
        double r7660711 = 1.0;
        double r7660712 = atan2(1.0, 0.0);
        double r7660713 = sqrt(r7660712);
        double r7660714 = r7660711 / r7660713;
        double r7660715 = 5.0;
        double r7660716 = r7660711 / r7660715;
        double r7660717 = x;
        double r7660718 = fabs(r7660717);
        double r7660719 = r7660718 * r7660718;
        double r7660720 = r7660719 * r7660718;
        double r7660721 = r7660720 * r7660718;
        double r7660722 = r7660718 * r7660721;
        double r7660723 = r7660716 * r7660722;
        double r7660724 = 2.0;
        double r7660725 = r7660718 * r7660724;
        double r7660726 = 3.0;
        double r7660727 = r7660724 / r7660726;
        double r7660728 = r7660720 * r7660727;
        double r7660729 = r7660725 + r7660728;
        double r7660730 = r7660723 + r7660729;
        double r7660731 = r7660718 * r7660722;
        double r7660732 = r7660718 * r7660731;
        double r7660733 = 21.0;
        double r7660734 = r7660711 / r7660733;
        double r7660735 = r7660732 * r7660734;
        double r7660736 = r7660730 + r7660735;
        double r7660737 = r7660714 * r7660736;
        double r7660738 = fabs(r7660737);
        return r7660738;
}

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 2019169 
(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)))))))