| Alternative 1 | |
|---|---|
| Accuracy | 100.0% |
| Cost | 6720 |
(FPCore (x) :precision binary64 (exp (- (- 1.0 (* x x)))))
(FPCore (x) :precision binary64 (* (exp (+ x -1.0)) (exp (* x (+ x -1.0)))))
double code(double x) {
return exp(-(1.0 - (x * x)));
}
double code(double x) {
return exp((x + -1.0)) * exp((x * (x + -1.0)));
}
real(8) function code(x)
real(8), intent (in) :: x
code = exp(-(1.0d0 - (x * x)))
end function
real(8) function code(x)
real(8), intent (in) :: x
code = exp((x + (-1.0d0))) * exp((x * (x + (-1.0d0))))
end function
public static double code(double x) {
return Math.exp(-(1.0 - (x * x)));
}
public static double code(double x) {
return Math.exp((x + -1.0)) * Math.exp((x * (x + -1.0)));
}
def code(x): return math.exp(-(1.0 - (x * x)))
def code(x): return math.exp((x + -1.0)) * math.exp((x * (x + -1.0)))
function code(x) return exp(Float64(-Float64(1.0 - Float64(x * x)))) end
function code(x) return Float64(exp(Float64(x + -1.0)) * exp(Float64(x * Float64(x + -1.0)))) end
function tmp = code(x) tmp = exp(-(1.0 - (x * x))); end
function tmp = code(x) tmp = exp((x + -1.0)) * exp((x * (x + -1.0))); end
code[x_] := N[Exp[(-N[(1.0 - N[(x * x), $MachinePrecision]), $MachinePrecision])], $MachinePrecision]
code[x_] := N[(N[Exp[N[(x + -1.0), $MachinePrecision]], $MachinePrecision] * N[Exp[N[(x * N[(x + -1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
e^{-\left(1 - x \cdot x\right)}
e^{x + -1} \cdot e^{x \cdot \left(x + -1\right)}
Results
Initial program 100.0%
Simplified100.0%
[Start]100.0 | \[ e^{-\left(1 - x \cdot x\right)}
\] |
|---|---|
neg-sub0 [=>]100.0 | \[ e^{\color{blue}{0 - \left(1 - x \cdot x\right)}}
\] |
associate--r- [=>]100.0 | \[ e^{\color{blue}{\left(0 - 1\right) + x \cdot x}}
\] |
metadata-eval [=>]100.0 | \[ e^{\color{blue}{-1} + x \cdot x}
\] |
+-commutative [=>]100.0 | \[ e^{\color{blue}{x \cdot x + -1}}
\] |
Applied egg-rr99.9%
[Start]100.0 | \[ e^{x \cdot x + -1}
\] |
|---|---|
difference-of-sqr--1 [=>]99.9 | \[ e^{\color{blue}{\left(x + 1\right) \cdot \left(x - 1\right)}}
\] |
exp-prod [=>]99.9 | \[ \color{blue}{{\left(e^{x + 1}\right)}^{\left(x - 1\right)}}
\] |
sub-neg [=>]99.9 | \[ {\left(e^{x + 1}\right)}^{\color{blue}{\left(x + \left(-1\right)\right)}}
\] |
metadata-eval [=>]99.9 | \[ {\left(e^{x + 1}\right)}^{\left(x + \color{blue}{-1}\right)}
\] |
Applied egg-rr99.9%
[Start]99.9 | \[ {\left(e^{x + 1}\right)}^{\left(x + -1\right)}
\] |
|---|---|
sqr-pow [=>]100.0 | \[ \color{blue}{{\left(e^{x + 1}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{x + 1}\right)}^{\left(\frac{x + -1}{2}\right)}}
\] |
exp-sum [=>]100.0 | \[ {\color{blue}{\left(e^{x} \cdot e^{1}\right)}}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{x + 1}\right)}^{\left(\frac{x + -1}{2}\right)}
\] |
unpow-prod-down [=>]99.9 | \[ \color{blue}{\left({\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)} \cdot {\left(e^{x + 1}\right)}^{\left(\frac{x + -1}{2}\right)}
\] |
exp-sum [=>]99.9 | \[ \left({\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right) \cdot {\color{blue}{\left(e^{x} \cdot e^{1}\right)}}^{\left(\frac{x + -1}{2}\right)}
\] |
unpow-prod-down [=>]99.9 | \[ \left({\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right) \cdot \color{blue}{\left({\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)}
\] |
swap-sqr [=>]99.9 | \[ \color{blue}{\left({\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)}\right) \cdot \left({\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)}
\] |
div-inv [=>]99.9 | \[ \left({\left(e^{x}\right)}^{\color{blue}{\left(\left(x + -1\right) \cdot \frac{1}{2}\right)}} \cdot {\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)}\right) \cdot \left({\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)
\] |
metadata-eval [=>]99.9 | \[ \left({\left(e^{x}\right)}^{\left(\left(x + -1\right) \cdot \color{blue}{0.5}\right)} \cdot {\left(e^{x}\right)}^{\left(\frac{x + -1}{2}\right)}\right) \cdot \left({\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)
\] |
div-inv [=>]99.9 | \[ \left({\left(e^{x}\right)}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {\left(e^{x}\right)}^{\color{blue}{\left(\left(x + -1\right) \cdot \frac{1}{2}\right)}}\right) \cdot \left({\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)
\] |
metadata-eval [=>]99.9 | \[ \left({\left(e^{x}\right)}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {\left(e^{x}\right)}^{\left(\left(x + -1\right) \cdot \color{blue}{0.5}\right)}\right) \cdot \left({\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)} \cdot {\left(e^{1}\right)}^{\left(\frac{x + -1}{2}\right)}\right)
\] |
Simplified99.9%
[Start]99.9 | \[ \left({\left(e^{x}\right)}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {\left(e^{x}\right)}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right) \cdot \left({e}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {e}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right)
\] |
|---|---|
pow-sqr [=>]99.9 | \[ \color{blue}{{\left(e^{x}\right)}^{\left(2 \cdot \left(\left(x + -1\right) \cdot 0.5\right)\right)}} \cdot \left({e}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {e}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right)
\] |
*-commutative [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(2 \cdot \color{blue}{\left(0.5 \cdot \left(x + -1\right)\right)}\right)} \cdot \left({e}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {e}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right)
\] |
associate-*r* [=>]99.9 | \[ {\left(e^{x}\right)}^{\color{blue}{\left(\left(2 \cdot 0.5\right) \cdot \left(x + -1\right)\right)}} \cdot \left({e}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {e}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right)
\] |
metadata-eval [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(\color{blue}{1} \cdot \left(x + -1\right)\right)} \cdot \left({e}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {e}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right)
\] |
*-lft-identity [=>]99.9 | \[ {\left(e^{x}\right)}^{\color{blue}{\left(x + -1\right)}} \cdot \left({e}^{\left(\left(x + -1\right) \cdot 0.5\right)} \cdot {e}^{\left(\left(x + -1\right) \cdot 0.5\right)}\right)
\] |
pow-sqr [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(x + -1\right)} \cdot \color{blue}{{e}^{\left(2 \cdot \left(\left(x + -1\right) \cdot 0.5\right)\right)}}
\] |
*-commutative [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(x + -1\right)} \cdot {e}^{\left(2 \cdot \color{blue}{\left(0.5 \cdot \left(x + -1\right)\right)}\right)}
\] |
associate-*r* [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(x + -1\right)} \cdot {e}^{\color{blue}{\left(\left(2 \cdot 0.5\right) \cdot \left(x + -1\right)\right)}}
\] |
metadata-eval [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(x + -1\right)} \cdot {e}^{\left(\color{blue}{1} \cdot \left(x + -1\right)\right)}
\] |
*-lft-identity [=>]99.9 | \[ {\left(e^{x}\right)}^{\left(x + -1\right)} \cdot {e}^{\color{blue}{\left(x + -1\right)}}
\] |
Taylor expanded in x around -inf 99.9%
Taylor expanded in x around inf 99.9%
Simplified99.9%
[Start]99.9 | \[ e^{-1 \cdot \left(\log e \cdot \left(1 - x\right)\right)} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
|---|---|
mul-1-neg [=>]99.9 | \[ e^{\color{blue}{-\log e \cdot \left(1 - x\right)}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
log-E [=>]99.9 | \[ e^{-\color{blue}{1} \cdot \left(1 - x\right)} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
*-lft-identity [=>]99.9 | \[ e^{-\color{blue}{\left(1 - x\right)}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
exp-neg [=>]99.9 | \[ \color{blue}{\frac{1}{e^{1 - x}}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
div-exp [<=]99.9 | \[ \frac{1}{\color{blue}{\frac{e^{1}}{e^{x}}}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
metadata-eval [<=]99.9 | \[ \frac{1}{\frac{e^{\color{blue}{--1}}}{e^{x}}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
rec-exp [<=]99.9 | \[ \frac{1}{\frac{\color{blue}{\frac{1}{e^{-1}}}}{e^{x}}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
associate-/r* [<=]99.9 | \[ \frac{1}{\color{blue}{\frac{1}{e^{-1} \cdot e^{x}}}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
exp-sum [<=]99.9 | \[ \frac{1}{\frac{1}{\color{blue}{e^{-1 + x}}}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
associate-/l* [<=]99.9 | \[ \color{blue}{\frac{1 \cdot e^{-1 + x}}{1}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
*-lft-identity [=>]99.9 | \[ \frac{\color{blue}{e^{-1 + x}}}{1} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
/-rgt-identity [=>]99.9 | \[ \color{blue}{e^{-1 + x}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
+-commutative [=>]99.9 | \[ e^{\color{blue}{x + -1}} \cdot e^{-1 \cdot \left(\left(1 + -1 \cdot x\right) \cdot x\right)}
\] |
Final simplification99.9%
| Alternative 1 | |
|---|---|
| Accuracy | 100.0% |
| Cost | 6720 |
| Alternative 2 | |
|---|---|
| Accuracy | 98.5% |
| Cost | 6464 |
herbie shell --seed 2023143
(FPCore (x)
:name "exp neg sub"
:precision binary64
(exp (- (- 1.0 (* x x)))))