Average Error: 0.0 → 0.0
Time: 27.8s
Precision: 64
\[e^{-\left(1 - x \cdot x\right)}\]
\[\frac{1}{\sqrt{e^{1}}} \cdot \frac{e^{x \cdot x}}{\sqrt{e^{1}}}\]
e^{-\left(1 - x \cdot x\right)}
\frac{1}{\sqrt{e^{1}}} \cdot \frac{e^{x \cdot x}}{\sqrt{e^{1}}}
double f(double x) {
        double r1608948 = 1.0;
        double r1608949 = x;
        double r1608950 = r1608949 * r1608949;
        double r1608951 = r1608948 - r1608950;
        double r1608952 = -r1608951;
        double r1608953 = exp(r1608952);
        return r1608953;
}

double f(double x) {
        double r1608954 = 1.0;
        double r1608955 = 1.0;
        double r1608956 = exp(r1608955);
        double r1608957 = sqrt(r1608956);
        double r1608958 = r1608954 / r1608957;
        double r1608959 = x;
        double r1608960 = r1608959 * r1608959;
        double r1608961 = exp(r1608960);
        double r1608962 = r1608961 / r1608957;
        double r1608963 = r1608958 * r1608962;
        return r1608963;
}

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^{x \cdot x - 1}}\]
  3. Using strategy rm
  4. Applied exp-diff0.0

    \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt1.0

    \[\leadsto \frac{e^{x \cdot x}}{\color{blue}{\sqrt{e^{1}} \cdot \sqrt{e^{1}}}}\]
  7. Applied *-un-lft-identity1.0

    \[\leadsto \frac{\color{blue}{1 \cdot e^{x \cdot x}}}{\sqrt{e^{1}} \cdot \sqrt{e^{1}}}\]
  8. Applied times-frac0.0

    \[\leadsto \color{blue}{\frac{1}{\sqrt{e^{1}}} \cdot \frac{e^{x \cdot x}}{\sqrt{e^{1}}}}\]
  9. Final simplification0.0

    \[\leadsto \frac{1}{\sqrt{e^{1}}} \cdot \frac{e^{x \cdot x}}{\sqrt{e^{1}}}\]

Reproduce

herbie shell --seed 2019168 +o rules:numerics
(FPCore (x)
  :name "exp neg sub"
  (exp (- (- 1.0 (* x x)))))