


Bits error versus x
Results
Initial program 30.9
Simplified30.9
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019004 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-cosine"
(log (+ x (sqrt (- (* x x) 1)))))
Time bar (total: 34.9s)Debug log
1 calls. Slowest were:
| 443.0ms | (log (+ x (sqrt (- (* x x) 1)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 32.0b
Found 3 expressions with local error:
| 30.7b | (sqrt (fma x x -1)) |
| 0.2b | (log (+ x (sqrt (fma x x -1)))) |
| 0.0b | (+ x (sqrt (fma x x -1))) |
3 calls. Slowest were:
| 1.0ms | (log (+ x (sqrt (fma x x -1)))) |
| 1.0ms | (+ x (sqrt (fma x x -1))) |
| 1.0ms | (sqrt (fma x x -1)) |
3 calls. Slowest were:
| 105.0ms | (log (+ x (sqrt (fma x x -1)))) |
| 47.0ms | (+ x (sqrt (fma x x -1))) |
| 36.0ms | (sqrt (fma x x -1)) |
19 calls. Slowest were:
| 388.0ms | (- (+ (* 1/2 (/ (pow x 2) (sqrt -1))) (sqrt -1)) (* 1/8 (/ (pow x 4) (pow (sqrt -1) 3)))) |
| 369.0ms | (+ (log -1/2) (+ (log (/ -1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2)))))) |
| 342.0ms | (log (- (* x x) (* (sqrt (fma x x -1)) (sqrt (fma x x -1))))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0b
Found 4 expressions with local error:
| 0.6b | (/ -1/4 (* x x)) |
| 0.2b | (/ 3/32 (pow x 4)) |
| 0.2b | (+ (log x) (log 2)) |
| 0.0b | (- (/ -1/4 (* x x)) (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))) |
4 calls. Slowest were:
| 39.0ms | (- (/ -1/4 (* x x)) (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))) |
| 3.0ms | (+ (log x) (log 2)) |
| 0.0ms | (/ 3/32 (pow x 4)) |
4 calls. Slowest were:
| 374.0ms | (+ (log x) (log 2)) |
| 91.0ms | (- (/ -1/4 (* x x)) (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))) |
| 25.0ms | (/ 3/32 (pow x 4)) |
| 23.0ms | (/ -1/4 (* x x)) |
104 calls. Slowest were:
| 731.0ms | (- (log 2) (+ (log (/ 1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2)))))) |
| 554.0ms | (- (+ (log 2) (log x)) (+ (* 1/4 (/ 1 (pow x 2))) (* 3/32 (/ 1 (pow x 4))))) |
| 512.0ms | (fma (- (sqrt (- (/ 3/32 (pow x 4)) (+ (log x) (log 2))))) (sqrt (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))) (* (sqrt (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))) (sqrt (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 2 expressions with local error:
| 0.2b | (log (- (fma 2 x (/ -1/2 x)) (/ (/ 1/8 x) (* x x)))) |
| 0.1b | (/ (/ 1/8 x) (* x x)) |
2 calls. Slowest were:
| 5.0ms | (log (- (fma 2 x (/ -1/2 x)) (/ (/ 1/8 x) (* x x)))) |
| 3.0ms | (/ (/ 1/8 x) (* x x)) |
2 calls. Slowest were:
| 98.0ms | (log (- (fma 2 x (/ -1/2 x)) (/ (/ 1/8 x) (* x x)))) |
| 26.0ms | (/ (/ 1/8 x) (* x x)) |
27 calls. Slowest were:
| 545.0ms | (/ (* (* (/ 1/8 x) (/ 1/8 x)) (/ 1/8 x)) (* (* (* x x) (* x x)) (* x x))) |
| 362.0ms | (log (- (pow (fma 2 x (/ -1/2 x)) 3) (pow (/ (/ 1/8 x) (* x x)) 3))) |
| 345.0ms | (- (+ (log -1/8) (* 4 (pow x 2))) (+ (* 24 (pow x 4)) (* 3 (log x)))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
0% (0.2b remaining)
Error of 0.4b against oracle of 0.2b and baseline of 0.4b