Average Error: 0.0 → 0.0
Time: 2.6s
Precision: 64
Internal Precision: 128
\[e^{-\left(1 - x \cdot x\right)}\]
\[e^{(x \cdot x + -1)_*}\]

Error

Bits error versus x

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. Taylor expanded around -inf 0.0

    \[\leadsto \color{blue}{e^{(x \cdot x + -1)_*}}\]
  4. Final simplification0.0

    \[\leadsto e^{(x \cdot x + -1)_*}\]

Reproduce

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

Details

Time bar (total: 2.4s)Debug log

sample39.0ms

Algorithm
intervals

simplify45.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
45.0ms
(exp (- (- 1 (* x x))))

prune6.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize7.0ms

Local error

Found 1 expressions with local error:

0.0b
(exp (fma x x -1))

rewrite2.0ms

Algorithm
rewrite-expression-head
Rules
exp-prod
add-log-exp
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
rem-exp-log
log1p-expm1-u
fma-udef
add-exp-log
exp-sum
add-cbrt-cube
pow1
expm1-log1p-u
Counts
1 → 14
Calls
1 calls:
Slowest
2.0ms
(exp (fma x x -1))

series20.0ms

Counts
1 → 3
Calls
1 calls:
Slowest
20.0ms
(exp (fma x x -1))

simplify145.0ms

Counts
8 → 17
Calls
8 calls:
Slowest
112.0ms
(+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1)))))
20.0ms
(exp (* (cbrt (fma x x -1)) (cbrt (fma x x -1))))
4.0ms
(exp (sqrt (fma x x -1)))
2.0ms
(exp (fma x x -1))
2.0ms
(exp (fma x x -1))

prune81.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize0.0ms

Local error

Found 1 expressions with local error:

0.0b
(exp (fma x x -1))

rewrite2.0ms

Algorithm
rewrite-expression-head
Rules
exp-prod
add-log-exp
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
rem-exp-log
log1p-expm1-u
fma-udef
add-exp-log
exp-sum
add-cbrt-cube
pow1
expm1-log1p-u
Counts
1 → 14
Calls
1 calls:
Slowest
2.0ms
(exp (fma x x -1))

series17.0ms

Counts
1 → 3
Calls
1 calls:
Slowest
17.0ms
(exp (fma x x -1))

simplify144.0ms

Counts
8 → 17
Calls
8 calls:
Slowest
112.0ms
(+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1)))))
20.0ms
(exp (* (cbrt (fma x x -1)) (cbrt (fma x x -1))))
4.0ms
(exp (sqrt (fma x x -1)))
2.0ms
(exp (fma x x -1))
2.0ms
(exp (fma x x -1))

prune100.0ms

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0.0b

localize18.0ms

Local error

Found 2 expressions with local error:

0.0b
(fma (fma 1/2 (pow x 4) (* x x)) (exp -1) (exp -1))
0.0b
(fma 1/2 (pow x 4) (* x x))

rewrite1.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
log1p-expm1-u
fma-udef
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
expm1-log1p-u
add-sqr-sqrt
Counts
2 → 20
Calls
2 calls:
Slowest
0.0ms
(fma (fma 1/2 (pow x 4) (* x x)) (exp -1) (exp -1))
0.0ms
(fma 1/2 (pow x 4) (* x x))

series104.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
66.0ms
(fma (fma 1/2 (pow x 4) (* x x)) (exp -1) (exp -1))
37.0ms
(fma 1/2 (pow x 4) (* x x))

simplify352.0ms

Counts
6 → 26
Calls
6 calls:
Slowest
113.0ms
(+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1)))))
111.0ms
(+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1)))))
111.0ms
(+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1)))))
5.0ms
(+ (pow x 2) (* 1/2 (pow x 4)))
5.0ms
(+ (pow x 2) (* 1/2 (pow x 4)))

prune165.0ms

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0.0b

regimes18.0ms

Accuracy

0% (0.0b remaining)

Error of 0.0b against oracle of 0.0b and baseline of 0.0b

bsearch0.0ms

end0.0ms

sample1.1s

Algorithm
intervals