


Bits error versus x
Results
Initial program 30.9
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019004
(FPCore (x)
:name "Hyperbolic arc-cosine"
(log (+ x (sqrt (- (* x x) 1)))))
Time bar (total: 16.3s)Debug log
1 calls. Slowest were:
| 95.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 (- (* x x) 1)) |
| 0.2b | (log (+ x (sqrt (- (* x x) 1)))) |
| 0.0b | (+ x (sqrt (- (* x x) 1))) |
3 calls. Slowest were:
| 7.0ms | (log (+ x (sqrt (- (* x x) 1)))) |
| 2.0ms | (sqrt (- (* x x) 1)) |
| 1.0ms | (+ x (sqrt (- (* x x) 1))) |
3 calls. Slowest were:
| 91.0ms | (log (+ x (sqrt (- (* x x) 1)))) |
| 28.0ms | (+ x (sqrt (- (* x x) 1))) |
| 20.0ms | (sqrt (- (* x x) 1)) |
22 calls. Slowest were:
| 395.0ms | (- (+ (* 1/2 (/ (pow x 2) (sqrt -1))) (sqrt -1)) (* 1/8 (/ (pow x 4) (pow (sqrt -1) 3)))) |
| 306.0ms | (+ (log -1/2) (+ (log (/ -1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2)))))) |
| 284.0ms | (log (- (* x x) (* (sqrt (- (* x x) 1)) (sqrt (- (* 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 2) (log x)) |
| 0.0b | (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) |
4 calls. Slowest were:
| 126.0ms | (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) |
| 6.0ms | (+ (log 2) (log x)) |
| 1.0ms | (/ -3/32 (pow x 4)) |
4 calls. Slowest were:
| 380.0ms | (+ (log 2) (log x)) |
| 114.0ms | (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) |
| 26.0ms | (/ -3/32 (pow x 4)) |
| 18.0ms | (/ -1/4 (* x x)) |
32 calls. Slowest were:
| 258.0ms | (+ (* (+ (* (+ (pow (log 2) 3) (pow (log x) 3)) (pow x 4)) (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) -3/32)) (* x x)) (* (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) (pow x 4)) -1/4)) |
| 255.0ms | (* (+ (* (+ (log 2) (log x)) (+ (log 2) (log x))) (- (* (/ -3/32 (pow x 4)) (/ -3/32 (pow x 4))) (* (+ (log 2) (log x)) (/ -3/32 (pow x 4))))) (* x x)) |
| 250.0ms | (+ (* (+ (* (- (* (log 2) (log 2)) (* (log x) (log x))) (pow x 4)) (* (- (log 2) (log x)) -3/32)) (* x x)) (* (* (- (log 2) (log x)) (pow x 4)) -1/4)) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 3 expressions with local error:
| 0.5b | (* (sqrt (+ x 1)) (sqrt (- x 1))) |
| 0.2b | (log (+ x (* (sqrt (+ x 1)) (sqrt (- x 1))))) |
| 0.0b | (+ x (* (sqrt (+ x 1)) (sqrt (- x 1)))) |
3 calls. Slowest were:
| 5.0ms | (* (sqrt (+ x 1)) (sqrt (- x 1))) |
| 2.0ms | (+ x (* (sqrt (+ x 1)) (sqrt (- x 1)))) |
| 1.0ms | (log (+ x (* (sqrt (+ x 1)) (sqrt (- x 1))))) |
3 calls. Slowest were:
| 73.0ms | (log (+ x (* (sqrt (+ x 1)) (sqrt (- x 1))))) |
| 31.0ms | (* (sqrt (+ x 1)) (sqrt (- x 1))) |
| 30.0ms | (+ x (* (sqrt (+ x 1)) (sqrt (- x 1)))) |
43 calls. Slowest were:
| 692.0ms | (log (- (* x x) (* (* (sqrt (+ x 1)) (sqrt (- x 1))) (* (sqrt (+ x 1)) (sqrt (- x 1)))))) |
| 642.0ms | (* (* (* (sqrt (+ x 1)) (sqrt (+ x 1))) (sqrt (+ x 1))) (* (* (sqrt (- x 1)) (sqrt (- x 1))) (sqrt (- x 1)))) |
| 343.0ms | (- (+ (* 1/2 (/ (pow x 2) (sqrt -1))) (sqrt -1)) (* 1/8 (/ (pow x 4) (pow (sqrt -1) 3)))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
0% (0.4b remaining)
Error of 0.4b against oracle of 0.0b and baseline of 0.4b