



Bits error versus x




Bits error versus eps
| Original | 36.5 |
|---|---|
| Target | 15.2 |
| Herbie | 15.1 |
if eps < -2.0002192550276487e-26 or 8.912544817231381e-119 < eps Initial program 29.9
rmApplied tan-sum5.4
rmApplied tan-quot5.4
Applied frac-sub5.4
Simplified5.4
if -2.0002192550276487e-26 < eps < 8.912544817231381e-119Initial program 47.3
rmApplied tan-sum47.3
rmApplied div-inv47.3
Applied fma-neg47.3
rmApplied flip3--47.3
Applied associate-/r/47.3
Simplified47.3
Taylor expanded around 0 31.2
Simplified31.1
Final simplification15.1
herbie shell --seed 2019005 +o rules:numerics
(FPCore (x eps)
:name "2tan (problem 3.3.2)"
:herbie-target
(/ (sin eps) (* (cos x) (cos (+ x eps))))
(- (tan (+ x eps)) (tan x)))
Time bar (total: 38.0s)Debug log
1 calls. Slowest were:
| 5.0ms | (- (tan (+ x eps)) (tan x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 36.6b
Found 2 expressions with local error:
| 3.8b | (tan (+ x eps)) |
| 1.8b | (- (tan (+ x eps)) (tan x)) |
2 calls. Slowest were:
| 6.0ms | (- (tan (+ x eps)) (tan x)) |
| 3.0ms | (tan (+ x eps)) |
2 calls. Slowest were:
| 91.0ms | (- (tan (+ x eps)) (tan x)) |
| 82.0ms | (tan (+ x eps)) |
35 calls. Slowest were:
| 263.0ms | (- (* (+ (tan x) (tan eps)) (cos x)) (* (- 1 (* (tan x) (tan eps))) (sin x))) |
| 210.0ms | (+ (* x (pow eps 2)) (+ eps (* (pow x 2) eps))) |
| 171.0ms | (* (- 1 (* (tan x) (tan eps))) (cos x)) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 13.7b
Found 4 expressions with local error:
| 4.1b | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 0.3b | (* (tan x) (tan eps)) |
| 0.1b | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 0.1b | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 62.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 13.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 5.0ms | (* (tan x) (tan eps)) |
4 calls. Slowest were:
| 434.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 243.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 102.0ms | (* (tan x) (tan eps)) |
| 94.0ms | (+ (tan x) (tan eps)) |
199 calls. Slowest were:
| 554.0ms | (fma (/ 1 (* (cbrt (- 1 (* (tan x) (tan eps)))) (cbrt (- 1 (* (tan x) (tan eps)))))) (/ (+ (tan x) (tan eps)) (cbrt (- 1 (* (tan x) (tan eps))))) (- (* (sqrt (tan x)) (sqrt (tan x))))) |
| 534.0ms | (fma (/ 1 (* (cbrt (- 1 (* (tan x) (tan eps)))) (cbrt (- 1 (* (tan x) (tan eps)))))) (/ (+ (tan x) (tan eps)) (cbrt (- 1 (* (tan x) (tan eps))))) (- (* (sqrt (tan x)) (sqrt (tan x))))) |
| 476.0ms | (fma (/ (+ (tan x) (tan eps)) (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (+ (* 1 1) (+ (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* 1 (* (tan x) (tan eps))))) (- (* (cbrt (tan x)) (* (cbrt (tan x)) (cbrt (tan x)))))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 13.5b
Found 4 expressions with local error:
| 4.1b | (fma (+ (tan x) (tan eps)) (/ 1 (- 1 (* (tan x) (tan eps)))) (- (tan x))) |
| 0.3b | (* (tan x) (tan eps)) |
| 0.1b | (/ 1 (- 1 (* (tan x) (tan eps)))) |
| 0.1b | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 4.0ms | (* (tan x) (tan eps)) |
| 4.0ms | (+ (tan x) (tan eps)) |
| 1.0ms | (/ 1 (- 1 (* (tan x) (tan eps)))) |
4 calls. Slowest were:
| 301.0ms | (fma (+ (tan x) (tan eps)) (/ 1 (- 1 (* (tan x) (tan eps)))) (- (tan x))) |
| 133.0ms | (/ 1 (- 1 (* (tan x) (tan eps)))) |
| 108.0ms | (* (tan x) (tan eps)) |
| 102.0ms | (+ (tan x) (tan eps)) |
36 calls. Slowest were:
| 303.0ms | (+ x (+ (* 1/3 (pow x 3)) eps)) |
| 227.0ms | (- (+ (/ (sin eps) (* (cos eps) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps)))))) (/ (sin x) (* (cos x) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))))) (/ (sin x) (cos x))) |
| 198.0ms | (+ (* 1 1) (+ (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* 1 (* (tan x) (tan eps))))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 13.5b
Found 4 expressions with local error:
| 4.1b | (fma (+ (tan x) (tan eps)) (* (/ 1 (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (fma (* (tan eps) (tan x)) (fma (tan x) (tan eps) 1) 1)) (- (tan x))) |
| 0.3b | (pow (* (tan x) (tan eps)) 3) |
| 0.3b | (* (tan x) (tan eps)) |
| 0.3b | (* (tan eps) (tan x)) |
4 calls. Slowest were:
| 5.0ms | (* (tan eps) (tan x)) |
| 4.0ms | (* (tan x) (tan eps)) |
| 4.0ms | (pow (* (tan x) (tan eps)) 3) |
4 calls. Slowest were:
| 720.0ms | (fma (+ (tan x) (tan eps)) (* (/ 1 (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (fma (* (tan eps) (tan x)) (fma (tan x) (tan eps) 1) 1)) (- (tan x))) |
| 104.0ms | (pow (* (tan x) (tan eps)) 3) |
| 96.0ms | (* (tan eps) (tan x)) |
| 79.0ms | (* (tan x) (tan eps)) |
47 calls. Slowest were:
| 192.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 186.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 174.0ms | (+ (* (pow x 3) (pow eps 5)) (+ (* (pow x 3) (pow eps 3)) (* (pow x 5) (pow eps 3)))) |
12 alts after pruning (11 fresh and 1 done)
Merged error: 13.5b
85% (1.1b remaining)
Error of 15.1b against oracle of 14.1b and baseline of 21.3b