


Bits error versus x
Results
if x < -0.009811382121909702 or 1.1266718384430646e-21 < x Initial program 2.7
rmApplied flip--2.9
Applied associate-/l/2.9
Simplified1.0
Taylor expanded around inf 1.0
Simplified0.7
rmApplied div-inv0.8
Applied *-un-lft-identity0.8
Applied times-frac0.8
Simplified0.8
if -0.009811382121909702 < x < 1.1266718384430646e-21Initial program 61.8
rmApplied flip--61.8
Applied associate-/l/61.8
Simplified30.9
Taylor expanded around 0 0.0
Final simplification0.4
herbie shell --seed 2019018
(FPCore (x)
:name "cos2 (problem 3.4.1)"
(/ (- 1 (cos x)) (* x x)))
Time bar (total: 26.2s)Debug log
| 53.0ms | 49× | body | 2560 | valid |
| 21.0ms | 35× | body | 1280 | valid |
| 19.0ms | 41× | body | 640 | valid |
| 14.0ms | 46× | body | 320 | valid |
| 7.0ms | 68× | body | 80 | valid |
| 4.0ms | 17× | body | 160 | valid |
| 27.0ms | (/ (- 1 (cos x)) (* x x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 28.9b
Found 2 expressions with local error:
| 14.3b | (/ (- 1 (cos x)) (* x x)) |
| 1.4b | (- 1 (cos x)) |
| 4× | add-cube-cbrt |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | *-un-lft-identity |
| 4× | add-sqr-sqrt |
| 3× | associate-/l* |
| 3× | times-frac |
| 2× | associate-/l/ |
| 2× | add-log-exp |
| 2× | flip-- |
| 2× | flip3-- |
| 2× | pow1 |
| 1× | div-inv |
| 1× | div-exp |
| 1× | div-sub |
| 1× | frac-2neg |
| 1× | sub-neg |
| 1× | associate-/r* |
| 1× | clear-num |
| 1× | cbrt-undiv |
| 31.0ms | (/ (- 1 (cos x)) (* x x)) |
| 2.0ms | (- 1 (cos x)) |
| 55.0ms | (/ (- 1 (cos x)) (* x x)) |
| 30.0ms | (- 1 (cos x)) |
| 445.0ms | (/ (* (* (- 1 (cos x)) (- 1 (cos x))) (- 1 (cos x))) (* (* (* x x) (* x x)) (* x x))) |
| 72.0ms | (- (+ (* 1/720 (pow x 4)) 1/2) (* 1/24 (pow x 2))) |
| 51.0ms | (- (+ (* 1/2 (pow x 2)) (* 1/720 (pow x 6))) (* 1/24 (pow x 4))) |
| 37.0ms | (- (log (- 1 (cos x))) (log (* x x))) |
| 28.0ms | (/ (- 1 (cos x)) (pow x 2)) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 14.3b | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 0.4b | (+ 1 (cos x)) |
| 0.2b | (* (sin x) (sin x)) |
| 0.1b | (* (* x x) (+ 1 (cos x))) |
| 20× | add-exp-log |
| 20× | add-cbrt-cube |
| 11× | pow1 |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | cbrt-unprod |
| 6× | prod-exp |
| 6× | associate-*r* |
| 4× | add-log-exp |
| 4× | associate-*r/ |
| 4× | associate-*l* |
| 4× | div-exp |
| 4× | cbrt-undiv |
| 3× | flip-+ |
| 3× | flip3-+ |
| 2× | sin-mult |
| 2× | sqr-sin |
| 2× | *-commutative |
| 2× | associate-/r/ |
| 2× | pow-prod-down |
| 1× | associate-/l/ |
| 1× | associate-/l* |
| 1× | div-inv |
| 1× | pow-prod-up |
| 1× | div-sub |
| 1× | pow-plus |
| 1× | times-frac |
| 1× | distribute-lft-in |
| 1× | frac-2neg |
| 1× | associate-/r* |
| 1× | clear-num |
| 1× | +-commutative |
| 1× | distribute-rgt-in |
| 1× | pow2 |
| 15.0ms | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 7.0ms | (* (* x x) (+ 1 (cos x))) |
| 7.0ms | (* (sin x) (sin x)) |
| 1.0ms | (+ 1 (cos x)) |
| 71.0ms | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 38.0ms | (* (* x x) (+ 1 (cos x))) |
| 23.0ms | (* (sin x) (sin x)) |
| 14.0ms | (+ 1 (cos x)) |
| 1.0s | (* (* (* (* x x) (* x x)) (* x x)) (* (* (+ 1 (cos x)) (+ 1 (cos x))) (+ 1 (cos x)))) |
| 466.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (sin x) (sin x)) (sin x))) (* (* (* (* x x) (+ 1 (cos x))) (* (* x x) (+ 1 (cos x)))) (* (* x x) (+ 1 (cos x))))) |
| 366.0ms | (/ (* (* (* (sin x) (sin x)) (* (sin x) (sin x))) (* (sin x) (sin x))) (* (* (* (* x x) (+ 1 (cos x))) (* (* x x) (+ 1 (cos x)))) (* (* x x) (+ 1 (cos x))))) |
| 345.0ms | (/ (* (* (* (sin x) (sin x)) (* (sin x) (sin x))) (* (sin x) (sin x))) (* (* (* (* x x) (* x x)) (* x x)) (* (* (+ 1 (cos x)) (+ 1 (cos x))) (+ 1 (cos x))))) |
| 338.0ms | (- (+ (log (sin x)) (log (sin x))) (log (* (* x x) (+ 1 (cos x))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 0b
Found 2 expressions with local error:
| 13.8b | (/ (* x x) (sin x)) |
| 0.2b | (/ (tan (/ x 2)) (/ (* x x) (sin x))) |
| 36× | times-frac |
| 20× | add-cube-cbrt |
| 20× | *-un-lft-identity |
| 20× | add-sqr-sqrt |
| 10× | associate-/r* |
| 9× | add-exp-log |
| 9× | add-cbrt-cube |
| 6× | div-inv |
| 4× | associate-/l* |
| 4× | div-exp |
| 4× | cbrt-undiv |
| 2× | add-log-exp |
| 2× | frac-2neg |
| 2× | clear-num |
| 2× | pow1 |
| 1× | associate-/l/ |
| 1× | associate-/r/ |
| 1× | tan-quot |
| 10.0ms | (/ (tan (/ x 2)) (/ (* x x) (sin x))) |
| 5.0ms | (/ (* x x) (sin x)) |
| 78.0ms | (/ (tan (/ x 2)) (/ (* x x) (sin x))) |
| 42.0ms | (/ (* x x) (sin x)) |
| 601.0ms | (/ (* (* (tan (/ x 2)) (tan (/ x 2))) (tan (/ x 2))) (* (* (/ (* x x) (sin x)) (/ (* x x) (sin x))) (/ (* x x) (sin x)))) |
| 269.0ms | (/ (* (* (* x x) (* x x)) (* x x)) (* (* (sin x) (sin x)) (sin x))) |
| 151.0ms | (/ (* (sin x) (sin (* 1/2 x))) (* (cos (* 1/2 x)) (pow x 2))) |
| 135.0ms | (/ (* (sin x) (sin (* 1/2 x))) (* (cos (* 1/2 x)) (pow x 2))) |
| 93.0ms | (- (log (tan (/ x 2))) (- (log (* x x)) (log (sin x)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 14.3b | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 14.3b | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 12.1b | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 12.1b | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 28× | add-exp-log |
| 28× | add-cbrt-cube |
| 14× | sqrt-prod |
| 8× | cbrt-unprod |
| 8× | associate-/r/ |
| 8× | associate-*r/ |
| 8× | prod-exp |
| 8× | div-exp |
| 8× | cbrt-undiv |
| 8× | add-sqr-sqrt |
| 6× | add-cube-cbrt |
| 6× | *-un-lft-identity |
| 4× | add-log-exp |
| 4× | div-inv |
| 4× | flip-+ |
| 4× | times-frac |
| 4× | flip3-+ |
| 4× | pow1 |
| 2× | associate-/l/ |
| 2× | associate-/l* |
| 2× | sin-mult |
| 2× | sqr-sin |
| 2× | div-sub |
| 2× | sqrt-div |
| 2× | pow1/2 |
| 2× | frac-2neg |
| 2× | associate-/r* |
| 2× | clear-num |
| 2× | rem-sqrt-square |
| 8.0ms | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 8.0ms | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 2.0ms | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 2.0ms | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 88.0ms | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 63.0ms | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 60.0ms | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 44.0ms | (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))) |
| 715.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (sin x) (sin x)) (sin x))) (* (* (* (* x x) (+ 1 (cos x))) (* (* x x) (+ 1 (cos x)))) (* (* x x) (+ 1 (cos x))))) |
| 473.0ms | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 399.0ms | (sqrt (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x)))))) |
| 395.0ms | (sqrt (/ (* (sin x) (sin x)) (* (* x x) (+ 1 (cos x))))) |
| 384.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (sin x) (sin x)) (sin x))) (* (* (* (* x x) (+ 1 (cos x))) (* (* x x) (+ 1 (cos x)))) (* (* x x) (+ 1 (cos x))))) |
8 alts after pruning (6 fresh and 2 done)
Merged error: 0b
97.7% (0.4b remaining)
Error of 0.4b against oracle of 0.0b and baseline of 15.8b
| 1.9s | 1691× | body | 2560 | valid |
| 1.4s | 1229× | body | 1280 | valid |
| 827.0ms | 1450× | body | 640 | valid |
| 357.0ms | 906× | body | 320 | valid |
| 234.0ms | 2229× | body | 80 | valid |
| 176.0ms | 495× | body | 160 | valid |