


Bits error versus x
Results
Initial program 57.9
Taylor expanded around 0 0.6
Simplified0.6
rmApplied fma-udef0.6
Taylor expanded around -inf 0.6
Final simplification0.6
herbie shell --seed 2019007 +o rules:numerics
(FPCore (x)
:name "Hyperbolic sine"
(/ (- (exp x) (exp (- x))) 2))
Time bar (total: 10.2s)Debug log
1 calls. Slowest were:
| 32.0ms | (/ (- (exp x) (exp (- x))) 2) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 58.4b
Found 1 expressions with local error:
| 7.5b | (- (exp x) (exp (- x))) |
1 calls. Slowest were:
| 5.0ms | (- (exp x) (exp (- x))) |
1 calls. Slowest were:
| 77.0ms | (- (exp x) (exp (- x))) |
27 calls. Slowest were:
| 88.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
| 60.0ms | (fma 1 (exp x) (- (* (exp (- x)) 1))) |
| 52.0ms | (fma (* (cbrt (exp x)) (cbrt (exp x))) (cbrt (exp x)) (- (* (exp (- x)) 1))) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.0b
Found 2 expressions with local error:
| 0.0b | (* (pow x 5) 1/60) |
| 0.0b | (fma (fma 1/3 (* x x) 2) x (* (pow x 5) 1/60)) |
2 calls. Slowest were:
| 3.0ms | (* (pow x 5) 1/60) |
| 0.0ms | (fma (fma 1/3 (* x x) 2) x (* (pow x 5) 1/60)) |
2 calls. Slowest were:
| 42.0ms | (fma (fma 1/3 (* x x) 2) x (* (pow x 5) 1/60)) |
| 21.0ms | (* (pow x 5) 1/60) |
8 calls. Slowest were:
| 93.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
| 92.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
| 91.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.0b
Found 3 expressions with local error:
| 0.0b | (* (pow x 5) 1/60) |
| 0.0b | (* (fma 1/3 (* x x) 2) x) |
| 0.0b | (+ (* (fma 1/3 (* x x) 2) x) (* (pow x 5) 1/60)) |
3 calls. Slowest were:
| 9.0ms | (+ (* (fma 1/3 (* x x) 2) x) (* (pow x 5) 1/60)) |
| 5.0ms | (* (fma 1/3 (* x x) 2) x) |
| 4.0ms | (* (pow x 5) 1/60) |
3 calls. Slowest were:
| 57.0ms | (* (fma 1/3 (* x x) 2) x) |
| 41.0ms | (+ (* (fma 1/3 (* x x) 2) x) (* (pow x 5) 1/60)) |
| 36.0ms | (* (pow x 5) 1/60) |
15 calls. Slowest were:
| 107.0ms | (* (exp (* (fma 1/3 (* x x) 2) x)) (exp (* (pow x 5) 1/60))) |
| 72.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
| 67.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.1b | (* 1/3 (pow x 3)) |
| 0.0b | (* (pow x 5) 1/60) |
| 0.0b | (+ (+ (* 2 x) (* 1/3 (pow x 3))) (* (pow x 5) 1/60)) |
| 0.0b | (+ (* 2 x) (* 1/3 (pow x 3))) |
4 calls. Slowest were:
| 15.0ms | (+ (+ (* 2 x) (* 1/3 (pow x 3))) (* (pow x 5) 1/60)) |
| 4.0ms | (* (pow x 5) 1/60) |
| 3.0ms | (+ (* 2 x) (* 1/3 (pow x 3))) |
4 calls. Slowest were:
| 42.0ms | (+ (* 2 x) (* 1/3 (pow x 3))) |
| 30.0ms | (* (pow x 5) 1/60) |
| 25.0ms | (+ (+ (* 2 x) (* 1/3 (pow x 3))) (* (pow x 5) 1/60)) |
| 16.0ms | (* 1/3 (pow x 3)) |
24 calls. Slowest were:
| 142.0ms | (* (* (exp (* 2 x)) (exp (* 1/3 (pow x 3)))) (exp (* (pow x 5) 1/60))) |
| 138.0ms | (* (exp (+ (* 2 x) (* 1/3 (pow x 3)))) (exp (* (pow x 5) 1/60))) |
| 70.0ms | (+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5)))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.0b
0% (0.6b remaining)
Error of 0.6b against oracle of 0.0b and baseline of 0.6b