


Bits error versus alpha



Bits error versus beta
if alpha < 6.673179515756449e+22Initial program 0.8
rmApplied div-sub0.8
Applied associate-+l-0.8
rmApplied add-exp-log0.8
if 6.673179515756449e+22 < alpha Initial program 51.3
rmApplied div-sub51.3
Applied associate-+l-49.5
Taylor expanded around inf 18.3
Simplified18.3
Final simplification6.3
herbie shell --seed 2018360 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))
Time bar (total: 1.8m)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 16.6b
Found 2 expressions with local error:
| 1.5b | (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) |
| 0.0b | (/ (- beta alpha) (+ (+ alpha beta) 2.0)) |
2 calls. Slowest were:
| 23.0ms | (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) |
| 10.0ms | (/ (- beta alpha) (+ (+ alpha beta) 2.0)) |
2 calls. Slowest were:
| 37.0ms | (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) |
| 25.0ms | (/ (- beta alpha) (+ (+ alpha beta) 2.0)) |
51 calls. Slowest were:
| 343.0ms | (/ (- beta alpha) (+ (pow (+ alpha beta) 3) (pow 2.0 3))) |
| 167.0ms | (- (+ (* 4.0 (/ 1 (pow beta 2))) 1) (* 2.0 (/ 1 beta))) |
| 145.0ms | (+ (* (+ alpha beta) (+ alpha beta)) (- (* 2.0 2.0) (* (+ alpha beta) 2.0))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 15.6b
Found 4 expressions with local error:
| 1.5b | (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0) |
| 0.0b | (/ alpha (+ (+ alpha beta) 2.0)) |
| 0.0b | (/ beta (+ (+ alpha beta) 2.0)) |
| 0.0b | (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) |
4 calls. Slowest were:
| 33.0ms | (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) |
| 12.0ms | (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0) |
| 3.0ms | (/ alpha (+ (+ alpha beta) 2.0)) |
4 calls. Slowest were:
| 61.0ms | (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0) |
| 41.0ms | (/ alpha (+ (+ alpha beta) 2.0)) |
| 40.0ms | (/ beta (+ (+ alpha beta) 2.0)) |
| 37.0ms | (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) |
76 calls. Slowest were:
| 803.0ms | (fma (/ beta (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) (- (+ alpha beta) 2.0) (- (* (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0) 1))) |
| 688.0ms | (- (* beta (+ (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (* (+ (+ alpha beta) 2.0) (- (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (* 1.0 1.0)))) |
| 616.0ms | (fma (/ beta (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) (- (+ alpha beta) 2.0) (- (* (cbrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (* (cbrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (cbrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 4.9b
Found 4 expressions with local error:
| 1.5b | (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)) |
| 0.1b | (/ (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) |
| 0.1b | (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) |
| 0.0b | (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) |
4 calls. Slowest were:
| 46.0ms | (/ (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) |
| 36.0ms | (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)) |
| 4.0ms | (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) |
4 calls. Slowest were:
| 286.0ms | (/ (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) |
| 80.0ms | (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)) |
| 48.0ms | (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) |
| 34.0ms | (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) |
350 calls. Slowest were:
| 755.0ms | (/ (* (* (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)))) (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))))) (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))))) (* (* (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))) |
| 701.0ms | (- (* (* beta (+ (* (* alpha (/ alpha (+ (+ alpha beta) 2.0))) (- (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))) (* (+ (+ alpha beta) 2.0) (- (* (* 1.0 1.0) (* 1.0 1.0)) (* (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))) (+ (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))) (* (* (+ (+ alpha beta) 2.0) (- (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))) (* (+ (+ alpha beta) 2.0) (- (* (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow (/ alpha (+ (+ alpha beta) 2.0)) 3)) (* (pow 1.0 3) (pow 1.0 3)))))) |
| 666.0ms | (- (* (* beta (+ (* (* (/ alpha (+ (+ alpha beta) 2.0)) alpha) (- (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))) (* (+ (+ alpha beta) 2.0) (- (* (* 1.0 1.0) (* 1.0 1.0)) (* (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))) (+ (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))) (* (* (+ (+ alpha beta) 2.0) (- (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))) (* (+ (+ alpha beta) 2.0) (- (* (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow (/ alpha (+ (+ alpha beta) 2.0)) 3)) (* (pow 1.0 3) (pow 1.0 3)))))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 4.7b
Found 4 expressions with local error:
| 6.8b | (cbrt (/ alpha (+ (+ alpha beta) 2.0))) |
| 1.5b | (- (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)) |
| 0.5b | (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3) |
| 0.1b | (/ (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) |
4 calls. Slowest were:
| 66.0ms | (/ (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) |
| 13.0ms | (- (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)) |
| 2.0ms | (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3) |
4 calls. Slowest were:
| 323.0ms | (/ (- (* beta (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))) (* (+ (+ alpha beta) 2.0) (- (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)))) (* (+ (+ alpha beta) 2.0) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) |
| 186.0ms | (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3) |
| 114.0ms | (cbrt (/ alpha (+ (+ alpha beta) 2.0))) |
| 107.0ms | (- (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)) |
159 calls. Slowest were:
| 570.0ms | (- (* (* beta (- (* (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0)))) (* (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) (+ (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3))) (* (- (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))) (* (+ (+ alpha beta) 2.0) (- (* (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3))) (* (pow 1.0 3) (pow 1.0 3)))))) |
| 549.0ms | (- (* (* beta (+ (* (* alpha (/ alpha (+ (+ alpha beta) 2.0))) (+ (* (* 1.0 1.0) (* 1.0 1.0)) (- (* (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (* (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) (* (+ (+ alpha beta) 2.0) (+ (pow (* 1.0 1.0) 3) (pow (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0) 3))))) (* (+ (* (+ alpha beta) (+ alpha beta)) (- (* 2.0 2.0) (* (+ alpha beta) 2.0))) (+ (* (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3))) (+ (* (pow 1.0 3) (pow 1.0 3)) (* (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) (pow 1.0 3)))))) (* (* (+ (+ alpha beta) 2.0) (+ (* (* 1.0 1.0) (* 1.0 1.0)) (- (* (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (* (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))) (* (+ (pow (+ alpha beta) 3) (pow 2.0 3)) (- (pow (* (* (/ alpha (+ 2.0 (+ beta alpha))) (/ alpha (+ 2.0 (+ beta alpha)))) (pow (cbrt (/ alpha (+ (+ alpha beta) 2.0))) 3)) 3) (pow (pow 1.0 3) 3))))) |
| 549.0ms | (- (* 2.0 (* (/ 1 alpha) (pow -1 1/3))) (+ (* 4.0 (* (/ 1 (pow alpha 2)) (pow -1 1/3))) (pow -1 1/3))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 4.7b
76% (3.1b remaining)
Error of 6.3b against oracle of 3.2b and baseline of 16.2b