Average Error: 0.0 → 0.4
Time: 10.8s
Precision: 64
\[e^{-\left(1 - x \cdot x\right)}\]
\[e^{-1} + e^{-1} \cdot \left(x \cdot x + \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{2}\right)\right)\]
e^{-\left(1 - x \cdot x\right)}
e^{-1} + e^{-1} \cdot \left(x \cdot x + \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{2}\right)\right)
double f(double x) {
        double r1368163 = 1.0;
        double r1368164 = x;
        double r1368165 = r1368164 * r1368164;
        double r1368166 = r1368163 - r1368165;
        double r1368167 = -r1368166;
        double r1368168 = exp(r1368167);
        return r1368168;
}

double f(double x) {
        double r1368169 = -1.0;
        double r1368170 = exp(r1368169);
        double r1368171 = x;
        double r1368172 = r1368171 * r1368171;
        double r1368173 = 0.5;
        double r1368174 = r1368172 * r1368173;
        double r1368175 = r1368172 * r1368174;
        double r1368176 = r1368172 + r1368175;
        double r1368177 = r1368170 * r1368176;
        double r1368178 = r1368170 + r1368177;
        return r1368178;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[e^{-\left(1 - x \cdot x\right)}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{e^{-1 + x \cdot x}}\]
  3. Taylor expanded around 0 0.4

    \[\leadsto \color{blue}{e^{-1} + \left({x}^{2} \cdot e^{-1} + \frac{1}{2} \cdot \left({x}^{4} \cdot e^{-1}\right)\right)}\]
  4. Simplified0.4

    \[\leadsto \color{blue}{e^{-1} \cdot \left(x \cdot x + \left(\frac{1}{2} \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) + e^{-1}}\]
  5. Final simplification0.4

    \[\leadsto e^{-1} + e^{-1} \cdot \left(x \cdot x + \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{2}\right)\right)\]

Reproduce

herbie shell --seed 2019135 
(FPCore (x)
  :name "exp neg sub"
  (exp (- (- 1 (* x x)))))