Average Error: 0.2 → 0.2
Time: 30.0s
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|\left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left({\left(\left|x\right|\right)}^{4} \cdot \frac{1}{5} + \frac{1}{\sqrt{21}} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \frac{1}{\sqrt{21}}\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\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|\left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left({\left(\left|x\right|\right)}^{4} \cdot \frac{1}{5} + \frac{1}{\sqrt{21}} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \frac{1}{\sqrt{21}}\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|
double f(double x) {
        double r87922 = 1.0;
        double r87923 = atan2(1.0, 0.0);
        double r87924 = sqrt(r87923);
        double r87925 = r87922 / r87924;
        double r87926 = 2.0;
        double r87927 = x;
        double r87928 = fabs(r87927);
        double r87929 = r87926 * r87928;
        double r87930 = 3.0;
        double r87931 = r87926 / r87930;
        double r87932 = r87928 * r87928;
        double r87933 = r87932 * r87928;
        double r87934 = r87931 * r87933;
        double r87935 = r87929 + r87934;
        double r87936 = 5.0;
        double r87937 = r87922 / r87936;
        double r87938 = r87933 * r87928;
        double r87939 = r87938 * r87928;
        double r87940 = r87937 * r87939;
        double r87941 = r87935 + r87940;
        double r87942 = 21.0;
        double r87943 = r87922 / r87942;
        double r87944 = r87939 * r87928;
        double r87945 = r87944 * r87928;
        double r87946 = r87943 * r87945;
        double r87947 = r87941 + r87946;
        double r87948 = r87925 * r87947;
        double r87949 = fabs(r87948);
        return r87949;
}

double f(double x) {
        double r87950 = 2.0;
        double r87951 = x;
        double r87952 = fabs(r87951);
        double r87953 = 3.0;
        double r87954 = r87950 / r87953;
        double r87955 = 3.0;
        double r87956 = pow(r87952, r87955);
        double r87957 = r87954 * r87956;
        double r87958 = fma(r87950, r87952, r87957);
        double r87959 = 4.0;
        double r87960 = pow(r87952, r87959);
        double r87961 = 1.0;
        double r87962 = 5.0;
        double r87963 = r87961 / r87962;
        double r87964 = r87960 * r87963;
        double r87965 = 1.0;
        double r87966 = 21.0;
        double r87967 = sqrt(r87966);
        double r87968 = r87965 / r87967;
        double r87969 = 6.0;
        double r87970 = pow(r87952, r87969);
        double r87971 = r87961 / r87967;
        double r87972 = r87970 * r87971;
        double r87973 = r87968 * r87972;
        double r87974 = r87964 + r87973;
        double r87975 = r87952 * r87974;
        double r87976 = r87958 + r87975;
        double r87977 = atan2(1.0, 0.0);
        double r87978 = sqrt(r87977);
        double r87979 = r87961 / r87978;
        double r87980 = r87976 * r87979;
        double r87981 = fabs(r87980);
        return r87981;
}

Error

Bits error versus x

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. Using strategy rm
  3. Applied *-un-lft-identity0.2

    \[\leadsto \left|\frac{1}{\color{blue}{1 \cdot \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|\]
  4. Applied *-un-lft-identity0.2

    \[\leadsto \left|\frac{\color{blue}{1 \cdot 1}}{1 \cdot \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|\]
  5. Applied times-frac0.2

    \[\leadsto \left|\color{blue}{\left(\frac{1}{1} \cdot \frac{1}{\sqrt{\pi}}\right)} \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|\]
  6. Applied associate-*l*0.2

    \[\leadsto \left|\color{blue}{\frac{1}{1} \cdot \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)}\right|\]
  7. Simplified0.2

    \[\leadsto \left|\frac{1}{1} \cdot \color{blue}{\left(\frac{1}{\sqrt{\pi}} \cdot \left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{\left(3 + 1\right)} + \frac{1}{21} \cdot {\left(\left|x\right|\right)}^{\left(2 \cdot 3\right)}\right)\right)\right)}\right|\]
  8. Using strategy rm
  9. Applied add-sqr-sqrt0.2

    \[\leadsto \left|\frac{1}{1} \cdot \left(\frac{1}{\sqrt{\pi}} \cdot \left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{\left(3 + 1\right)} + \frac{1}{\color{blue}{\sqrt{21} \cdot \sqrt{21}}} \cdot {\left(\left|x\right|\right)}^{\left(2 \cdot 3\right)}\right)\right)\right)\right|\]
  10. Applied *-un-lft-identity0.2

    \[\leadsto \left|\frac{1}{1} \cdot \left(\frac{1}{\sqrt{\pi}} \cdot \left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{\left(3 + 1\right)} + \frac{\color{blue}{1 \cdot 1}}{\sqrt{21} \cdot \sqrt{21}} \cdot {\left(\left|x\right|\right)}^{\left(2 \cdot 3\right)}\right)\right)\right)\right|\]
  11. Applied times-frac0.2

    \[\leadsto \left|\frac{1}{1} \cdot \left(\frac{1}{\sqrt{\pi}} \cdot \left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{\left(3 + 1\right)} + \color{blue}{\left(\frac{1}{\sqrt{21}} \cdot \frac{1}{\sqrt{21}}\right)} \cdot {\left(\left|x\right|\right)}^{\left(2 \cdot 3\right)}\right)\right)\right)\right|\]
  12. Applied associate-*l*0.2

    \[\leadsto \left|\frac{1}{1} \cdot \left(\frac{1}{\sqrt{\pi}} \cdot \left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{\left(3 + 1\right)} + \color{blue}{\frac{1}{\sqrt{21}} \cdot \left(\frac{1}{\sqrt{21}} \cdot {\left(\left|x\right|\right)}^{\left(2 \cdot 3\right)}\right)}\right)\right)\right)\right|\]
  13. Simplified0.2

    \[\leadsto \left|\frac{1}{1} \cdot \left(\frac{1}{\sqrt{\pi}} \cdot \left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{\left(3 + 1\right)} + \frac{1}{\sqrt{21}} \cdot \color{blue}{\left({\left(\left|x\right|\right)}^{6} \cdot \frac{1}{\sqrt{21}}\right)}\right)\right)\right)\right|\]
  14. Final simplification0.2

    \[\leadsto \left|\left(\mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right) + \left|x\right| \cdot \left({\left(\left|x\right|\right)}^{4} \cdot \frac{1}{5} + \frac{1}{\sqrt{21}} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \frac{1}{\sqrt{21}}\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|\]

Reproduce

herbie shell --seed 2019303 +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)))))))