



Bits error versus x




Bits error versus eps
Results
| Original | 37.4 |
|---|---|
| Target | 15.6 |
| Herbie | 0.6 |
Initial program 37.4
rmApplied tan-sum21.6
rmApplied flip--21.7
Applied associate-/r/21.7
Taylor expanded around -inf 21.8
Simplified0.6
Final simplification0.6
herbie shell --seed 1137770271
(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: 1.1m)Debug log
| 112× | 321.0ms | (body real 1280) |
| 54× | 127.0ms | (body real 640) |
| 21× | 106.0ms | (body real 2560) |
| 31× | 49.0ms | (body real 80) |
| 30× | 42.0ms | (body real 320) |
| 8× | 7.0ms | (body real 160) |
| 256× | 7.0ms | (pre true 80) |
| 8.0ms | (- (tan (+ x eps)) (tan x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 40.8b
Found 2 expressions with local error:
| 3.4b | (tan (+ x eps)) |
| 0.9b | (- (tan (+ x eps)) (tan x)) |
| 4× | add-log-exp |
| 4× | tan-quot |
| 4× | *-un-lft-identity |
| 4× | add-sqr-sqrt |
| 2× | add-cube-cbrt |
| 2× | frac-sub |
| 2× | add-exp-log |
| 2× | add-cbrt-cube |
| 2× | tan-sum |
| 2× | pow1 |
| 1× | difference-of-squares |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | sub-neg |
| 13.0ms | (- (tan (+ x eps)) (tan x)) |
| 4.0ms | (tan (+ x eps)) |
| 156.0ms | (- (tan (+ x eps)) (tan x)) |
| 105.0ms | (tan (+ x eps)) |
| 292.0ms | (- (* (+ (tan x) (tan eps)) (cos x)) (* (- 1 (* (tan x) (tan eps))) (sin x))) |
| 184.0ms | (+ (* x (pow eps 2)) (+ eps (* (pow x 2) eps))) |
| 184.0ms | (* (- 1 (* (tan x) (tan eps))) (cos x)) |
| 64.0ms | (+ x (+ (* 1/3 (pow x 3)) eps)) |
| 30.0ms | (/ (exp (tan (+ x eps))) (exp (tan x))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 16.0b
Found 4 expressions with local error:
| 3.2b | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 0.2b | (* (tan x) (tan eps)) |
| 0.1b | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 0.1b | (+ (tan x) (tan eps)) |
| 27× | *-un-lft-identity |
| 20× | add-sqr-sqrt |
| 15× | add-cube-cbrt |
| 13× | times-frac |
| 9× | tan-quot |
| 8× | add-log-exp |
| 8× | add-exp-log |
| 8× | add-cbrt-cube |
| 6× | pow1 |
| 5× | distribute-lft-out |
| 4× | associate-/l* |
| 3× | associate-/l/ |
| 3× | associate-*l* |
| 3× | associate-*r* |
| 3× | associate-/r* |
| 2× | difference-of-squares |
| 2× | flip-- |
| 2× | flip-+ |
| 2× | associate-/r/ |
| 2× | frac-add |
| 2× | flip3-- |
| 2× | flip3-+ |
| 1× | distribute-lft-out-- |
| 1× | div-inv |
| 1× | cbrt-unprod |
| 1× | frac-sub |
| 1× | *-commutative |
| 1× | associate-*r/ |
| 1× | prod-exp |
| 1× | associate-*l/ |
| 1× | pow-prod-down |
| 1× | div-exp |
| 1× | diff-log |
| 1× | frac-2neg |
| 1× | sub-neg |
| 1× | sum-log |
| 1× | clear-num |
| 1× | +-commutative |
| 1× | cbrt-undiv |
| 1× | frac-times |
| 66.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 32.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 10.0ms | (* (tan x) (tan eps)) |
| 9.0ms | (+ (tan x) (tan eps)) |
| 636.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 383.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 171.0ms | (* (tan x) (tan eps)) |
| 168.0ms | (+ (tan x) (tan eps)) |
| 454.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 428.0ms | (/ (* (* (+ (tan x) (tan eps)) (+ (tan x) (tan eps))) (+ (tan x) (tan eps))) (* (* (- 1 (* (tan x) (tan eps))) (- 1 (* (tan x) (tan eps)))) (- 1 (* (tan x) (tan eps))))) |
| 351.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))) |
| 350.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))) |
| 293.0ms | (- (* (+ (tan x) (tan eps)) (cos x)) (* (- 1 (* (tan x) (tan eps))) (sin x))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 15.9b
Found 4 expressions with local error:
| 3.2b | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) (tan x)) |
| 0.2b | (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))) |
| 0.2b | (* (sin x) (sin eps)) |
| 0.1b | (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) |
| 25× | *-un-lft-identity |
| 20× | add-exp-log |
| 20× | add-cbrt-cube |
| 20× | add-sqr-sqrt |
| 15× | add-cube-cbrt |
| 14× | times-frac |
| 6× | add-log-exp |
| 6× | pow1 |
| 5× | associate-/l* |
| 5× | cbrt-unprod |
| 5× | prod-exp |
| 5× | div-exp |
| 5× | cbrt-undiv |
| 4× | associate-/l/ |
| 4× | distribute-lft-out |
| 4× | associate-/r* |
| 3× | associate-/r/ |
| 3× | tan-quot |
| 3× | associate-*l* |
| 3× | associate-*r* |
| 2× | difference-of-squares |
| 2× | sin-mult |
| 2× | flip-- |
| 2× | div-inv |
| 2× | flip3-- |
| 2× | frac-2neg |
| 2× | clear-num |
| 1× | distribute-lft-out-- |
| 1× | flip-+ |
| 1× | frac-sub |
| 1× | *-commutative |
| 1× | cos-mult |
| 1× | frac-add |
| 1× | pow-prod-down |
| 1× | diff-log |
| 1× | flip3-+ |
| 1× | sub-neg |
| 105.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) (tan x)) |
| 39.0ms | (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) |
| 19.0ms | (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))) |
| 9.0ms | (* (sin x) (sin eps)) |
| 653.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) (tan x)) |
| 401.0ms | (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) |
| 188.0ms | (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))) |
| 102.0ms | (* (sin x) (sin eps)) |
| 452.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 356.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (sin eps) (sin eps)) (sin eps))) (* (* (* (cos x) (cos x)) (cos x)) (* (* (cos eps) (cos eps)) (cos eps)))) |
| 354.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))) |
| 347.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))) |
| 319.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (sin eps) (sin eps)) (sin eps))) (* (* (* (cos x) (cos eps)) (* (cos x) (cos eps))) (* (cos x) (cos eps)))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 15.9b
Found 4 expressions with local error:
| 3.2b | (- (* (/ (+ (tan x) (tan eps)) (- (* 1 1) (* (* (tan x) (tan eps)) (* (tan x) (tan eps))))) (+ 1 (* (tan x) (tan eps)))) (tan x)) |
| 0.3b | (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) |
| 0.2b | (* (tan x) (tan eps)) |
| 0.2b | (* (tan x) (tan eps)) |
| 45× | tan-quot |
| 35× | pow1 |
| 21× | frac-times |
| 20× | add-exp-log |
| 20× | add-cbrt-cube |
| 15× | associate-*r/ |
| 15× | pow-prod-down |
| 14× | associate-*l/ |
| 10× | cbrt-unprod |
| 10× | prod-exp |
| 8× | add-cube-cbrt |
| 8× | *-un-lft-identity |
| 8× | add-sqr-sqrt |
| 7× | associate-*l* |
| 7× | associate-*r* |
| 6× | add-log-exp |
| 5× | frac-sub |
| 4× | pow-prod-up |
| 3× | *-commutative |
| 2× | flip-+ |
| 2× | associate--l+ |
| 2× | pow-plus |
| 2× | flip3-+ |
| 1× | flip-- |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | distribute-lft-in |
| 1× | sub-neg |
| 1× | distribute-rgt-in |
| 1× | pow2 |
| 41.0ms | (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) |
| 26.0ms | (- (* (/ (+ (tan x) (tan eps)) (- (* 1 1) (* (* (tan x) (tan eps)) (* (tan x) (tan eps))))) (+ 1 (* (tan x) (tan eps)))) (tan x)) |
| 10.0ms | (* (tan x) (tan eps)) |
| 10.0ms | (* (tan x) (tan eps)) |
| 1.5s | (- (* (/ (+ (tan x) (tan eps)) (- (* 1 1) (* (* (tan x) (tan eps)) (* (tan x) (tan eps))))) (+ 1 (* (tan x) (tan eps)))) (tan x)) |
| 199.0ms | (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) |
| 171.0ms | (* (tan x) (tan eps)) |
| 169.0ms | (* (tan x) (tan eps)) |
| 897.0ms | (* (* (* (* (tan x) (tan x)) (tan x)) (* (* (tan eps) (tan eps)) (tan eps))) (* (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* (tan x) (tan eps)))) |
| 837.0ms | (* (* (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* (tan x) (tan eps))) (* (* (* (tan x) (tan x)) (tan x)) (* (* (tan eps) (tan eps)) (tan eps)))) |
| 827.0ms | (* (* (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* (tan x) (tan eps))) (* (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* (tan x) (tan eps)))) |
| 752.0ms | (- (+ (/ (sin x) (* (cos x) (- 1 (/ (* (pow (sin x) 2) (pow (sin eps) 2)) (* (pow (cos x) 2) (pow (cos eps) 2)))))) (+ (/ (* (sin x) (pow (sin eps) 2)) (* (cos x) (* (pow (cos eps) 2) (- 1 (/ (* (pow (sin x) 2) (pow (sin eps) 2)) (* (pow (cos x) 2) (pow (cos eps) 2))))))) (+ (/ (* (pow (sin x) 2) (sin eps)) (* (pow (cos x) 2) (* (cos eps) (- 1 (/ (* (pow (sin x) 2) (pow (sin eps) 2)) (* (pow (cos x) 2) (pow (cos eps) 2))))))) (/ (sin eps) (* (cos eps) (- 1 (/ (* (pow (sin x) 2) (pow (sin eps) 2)) (* (pow (cos x) 2) (pow (cos eps) 2))))))))) (/ (sin x) (cos x))) |
| 616.0ms | (- (* (* (+ (tan x) (tan eps)) (+ 1 (* (tan x) (tan eps)))) (cos x)) (* (- (* 1 1) (* (* (tan x) (tan eps)) (* (tan x) (tan eps)))) (sin x))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 0.3b
0% (0.3b remaining)
Error of 0.6b against oracle of 0.3b and baseline of 0.6b
| 3276× | 10.5s | (body real 1280) |
| 1844× | 4.4s | (body real 640) |
| 635× | 4.3s | (body real 2560) |
| 812× | 1.7s | (body real 320) |
| 1068× | 491.0ms | (body real 80) |
| 365× | 408.0ms | (body real 160) |
| 8000× | 229.0ms | (pre true 80) |