


Bits error versus x
Results
Initial program 31.7
Simplified31.7
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019007 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-cosine"
(log (+ x (sqrt (- (* x x) 1)))))
Time bar (total: 38.5s)Debug log
1 calls. Slowest were:
| 109.0ms | (log (+ x (sqrt (- (* x x) 1)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 34.1b
Found 2 expressions with local error:
| 32.7b | (sqrt (fma x x -1)) |
| 0.2b | (log (+ x (sqrt (fma x x -1)))) |
2 calls. Slowest were:
| 1.0ms | (log (+ x (sqrt (fma x x -1)))) |
| 1.0ms | (sqrt (fma x x -1)) |
2 calls. Slowest were:
| 99.0ms | (log (+ x (sqrt (fma x x -1)))) |
| 23.0ms | (sqrt (fma x x -1)) |
16 calls. Slowest were:
| 395.0ms | (- (+ (* 1/2 (/ (pow x 2) (sqrt -1))) (sqrt -1)) (* 1/8 (/ (pow x 4) (pow (sqrt -1) 3)))) |
| 362.0ms | (- (log 2) (+ (log (/ 1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2)))))) |
| 351.0ms | (+ (log -1/2) (+ (log (/ -1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2)))))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.4b | (/ -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:
| 40.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:
| 361.0ms | (+ (log x) (log 2)) |
| 107.0ms | (- (/ -1/4 (* x x)) (- (/ 3/32 (pow x 4)) (+ (log x) (log 2)))) |
| 26.0ms | (/ 3/32 (pow x 4)) |
| 13.0ms | (/ -1/4 (* x x)) |
104 calls. Slowest were:
| 619.0ms | (- (+ (log 2) (log x)) (+ (* 1/4 (/ 1 (pow x 2))) (* 3/32 (/ 1 (pow x 4))))) |
| 542.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)))))) |
| 525.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)))))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0b
Found 3 expressions with local error:
| 0.2b | (log (+ x (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x))))) |
| 0.1b | (/ (/ -1/8 x) (* x x)) |
| 0.0b | (+ x (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x)))) |
3 calls. Slowest were:
| 14.0ms | (+ x (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x)))) |
| 9.0ms | (log (+ x (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x))))) |
| 6.0ms | (/ (/ -1/8 x) (* x x)) |
3 calls. Slowest were:
| 100.0ms | (log (+ x (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x))))) |
| 30.0ms | (+ x (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x)))) |
| 24.0ms | (/ (/ -1/8 x) (* x x)) |
28 calls. Slowest were:
| 842.0ms | (log (+ (pow x 3) (pow (+ (/ (/ -1/8 x) (* x x)) (+ x (/ -1/2 x))) 3))) |
| 583.0ms | (/ (* (* (/ -1/8 x) (/ -1/8 x)) (/ -1/8 x)) (* (* (* x x) (* x x)) (* x x))) |
| 329.0ms | (- (+ (log -1/8) (* 4 (pow x 2))) (+ (* 24 (pow x 4)) (* 3 (log x)))) |
3 alts after pruning (1 fresh and 2 done)
Merged error: 0b
Found 4 expressions with local error:
| 1.0b | (pow (log 2) 3) |
| 1.0b | (* (log 2) (log 2)) |
| 0.6b | (pow (log x) 3) |
| 0.5b | (* (log x) (log x)) |
4 calls. Slowest were:
| 4.0ms | (* (log x) (log x)) |
| 4.0ms | (* (log 2) (log 2)) |
| 1.0ms | (pow (log 2) 3) |
4 calls. Slowest were:
| 188.0ms | (pow (log x) 3) |
| 185.0ms | (* (log x) (log x)) |
| 0.0ms | (pow (log 2) 3) |
| 0.0ms | (* (log 2) (log 2)) |
46 calls. Slowest were:
| 516.0ms | (pow (- (log -1) (log (/ -1 x))) 2) |
| 451.0ms | (pow (- (log -1) (log (/ -1 x))) 3) |
| 137.0ms | (* -1 (pow (log (/ 1 x)) 3)) |
3 alts after pruning (0 fresh and 3 done)
Merged error: 0b
0% (0.2b remaining)
Error of 0.2b against oracle of 0.0b and baseline of 0.2b