Average Error: 13.8 → 13.8
Time: 22.7s
Precision: 64
\[1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
\[1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(1.061405428999999900341322245367337018251 \cdot \log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right) + -1.453152027000000012790792425221297889948\right) + 1.421413741000000063863240029604639858007\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} + \mathsf{fma}\left(-0.2844967359999999723108032867457950487733, \frac{1}{\mathsf{fma}\left(0.3275911000000000239396058532292954623699, \left|x\right|, 1\right)}, 0.2548295919999999936678136691625695675611\right)\right)\right)\]
1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}
1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(1.061405428999999900341322245367337018251 \cdot \log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right) + -1.453152027000000012790792425221297889948\right) + 1.421413741000000063863240029604639858007\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} + \mathsf{fma}\left(-0.2844967359999999723108032867457950487733, \frac{1}{\mathsf{fma}\left(0.3275911000000000239396058532292954623699, \left|x\right|, 1\right)}, 0.2548295919999999936678136691625695675611\right)\right)\right)
double f(double x) {
        double r188120 = 1.0;
        double r188121 = 0.3275911;
        double r188122 = x;
        double r188123 = fabs(r188122);
        double r188124 = r188121 * r188123;
        double r188125 = r188120 + r188124;
        double r188126 = r188120 / r188125;
        double r188127 = 0.254829592;
        double r188128 = -0.284496736;
        double r188129 = 1.421413741;
        double r188130 = -1.453152027;
        double r188131 = 1.061405429;
        double r188132 = r188126 * r188131;
        double r188133 = r188130 + r188132;
        double r188134 = r188126 * r188133;
        double r188135 = r188129 + r188134;
        double r188136 = r188126 * r188135;
        double r188137 = r188128 + r188136;
        double r188138 = r188126 * r188137;
        double r188139 = r188127 + r188138;
        double r188140 = r188126 * r188139;
        double r188141 = r188123 * r188123;
        double r188142 = -r188141;
        double r188143 = exp(r188142);
        double r188144 = r188140 * r188143;
        double r188145 = r188120 - r188144;
        return r188145;
}

double f(double x) {
        double r188146 = 1.0;
        double r188147 = x;
        double r188148 = fabs(r188147);
        double r188149 = -r188148;
        double r188150 = r188148 * r188149;
        double r188151 = exp(r188150);
        double r188152 = 0.3275911;
        double r188153 = r188148 * r188152;
        double r188154 = r188146 + r188153;
        double r188155 = r188146 / r188154;
        double r188156 = 1.061405429;
        double r188157 = fma(r188148, r188152, r188146);
        double r188158 = r188146 / r188157;
        double r188159 = exp(r188158);
        double r188160 = log(r188159);
        double r188161 = r188156 * r188160;
        double r188162 = -1.453152027;
        double r188163 = r188161 + r188162;
        double r188164 = r188155 * r188163;
        double r188165 = 1.421413741;
        double r188166 = r188164 + r188165;
        double r188167 = r188155 * r188166;
        double r188168 = r188167 * r188155;
        double r188169 = -0.284496736;
        double r188170 = fma(r188152, r188148, r188146);
        double r188171 = r188146 / r188170;
        double r188172 = 0.254829592;
        double r188173 = fma(r188169, r188171, r188172);
        double r188174 = r188168 + r188173;
        double r188175 = r188155 * r188174;
        double r188176 = r188151 * r188175;
        double r188177 = r188146 - r188176;
        return r188177;
}

Error

Bits error versus x

Derivation

  1. Initial program 13.8

    \[1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
  2. Using strategy rm
  3. Applied add-log-exp13.8

    \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \color{blue}{\log \left(e^{\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}}\right)} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
  4. Simplified13.8

    \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \log \color{blue}{\left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right)} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
  5. Using strategy rm
  6. Applied distribute-rgt-in13.8

    \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \color{blue}{\left(-0.2844967359999999723108032867457950487733 \cdot \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} + \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right) \cdot 1.061405428999999900341322245367337018251\right)\right)\right) \cdot \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}\right)}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
  7. Applied associate-+r+13.8

    \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \color{blue}{\left(\left(0.2548295919999999936678136691625695675611 + -0.2844967359999999723108032867457950487733 \cdot \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}\right) + \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right) \cdot 1.061405428999999900341322245367337018251\right)\right)\right) \cdot \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}\right)}\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
  8. Simplified13.8

    \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(\color{blue}{\mathsf{fma}\left(-0.2844967359999999723108032867457950487733, \frac{1}{\mathsf{fma}\left(0.3275911000000000239396058532292954623699, \left|x\right|, 1\right)}, 0.2548295919999999936678136691625695675611\right)} + \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right) \cdot 1.061405428999999900341322245367337018251\right)\right)\right) \cdot \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
  9. Final simplification13.8

    \[\leadsto 1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(1.061405428999999900341322245367337018251 \cdot \log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right) + -1.453152027000000012790792425221297889948\right) + 1.421413741000000063863240029604639858007\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} + \mathsf{fma}\left(-0.2844967359999999723108032867457950487733, \frac{1}{\mathsf{fma}\left(0.3275911000000000239396058532292954623699, \left|x\right|, 1\right)}, 0.2548295919999999936678136691625695675611\right)\right)\right)\]

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.erf"
  (- 1.0 (* (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))