


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.5604433271538123e+100Initial program 29.7
Taylor expanded around -inf 6.8
if -1.5604433271538123e+100 < b < 1.501809486178084e+23Initial program 9.3
rmApplied add-sqr-sqrt9.4
if 1.501809486178084e+23 < b Initial program 32.7
Taylor expanded around inf 10.6
Final simplification9.1
herbie shell --seed 2019022
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))
Time bar (total: 21.2s)Debug log
| 52.0ms | 281× | body | 80 | valid |
| 15.0ms | 96× | body | 80 | nan |
| 150.0ms | (if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 18.0b
Found 4 expressions with local error:
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 2.0b | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 1.1b | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 12× | add-sqr-sqrt |
| 10× | *-un-lft-identity |
| 8× | add-log-exp |
| 7× | sqrt-prod |
| 6× | add-cube-cbrt |
| 4× | add-exp-log |
| 4× | sqrt-div |
| 4× | add-cbrt-cube |
| 4× | pow1 |
| 3× | flip-- |
| 3× | flip3-- |
| 2× | difference-of-squares |
| 2× | pow1/2 |
| 2× | rem-sqrt-square |
| 2× | neg-sub0 |
| 1× | distribute-lft-out-- |
| 1× | distribute-lft-out |
| 1× | flip-+ |
| 1× | associate-+l- |
| 1× | diff-log |
| 1× | flip3-+ |
| 1× | sub-neg |
| 1× | sum-log |
| 1× | +-commutative |
| 1× | associate--l- |
| 11.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 11.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 7.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 76.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 60.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 50.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 50.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 436.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 428.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 153.0ms | (- b (* 2 (/ (* a c) b))) |
| 140.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
| 139.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 7.5b
Found 4 expressions with local error:
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 12.8b | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 11× | add-sqr-sqrt |
| 9× | sqrt-prod |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 6× | add-log-exp |
| 6× | sqrt-div |
| 4× | flip-- |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | flip3-- |
| 4× | pow1 |
| 3× | pow1/2 |
| 3× | rem-sqrt-square |
| 1× | difference-of-squares |
| 1× | diff-log |
| 1× | sub-neg |
| 1× | neg-sub0 |
| 1× | associate--l- |
| 6.0ms | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 65.0ms | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 54.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 50.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 46.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 398.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 374.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 370.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 156.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
| 130.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 7.5b
Found 4 expressions with local error:
| 23.1b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 23.1b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 7.2b | (+ (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 8× | add-sqr-sqrt |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 6× | add-log-exp |
| 6× | cbrt-prod |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | cbrt-div |
| 4× | pow1 |
| 3× | flip-- |
| 3× | sqrt-prod |
| 3× | flip3-- |
| 2× | sqrt-div |
| 2× | pow1/3 |
| 1× | flip-+ |
| 1× | associate-+l- |
| 1× | pow1/2 |
| 1× | flip3-+ |
| 1× | sum-log |
| 1× | rem-sqrt-square |
| 1× | +-commutative |
| 1× | neg-sub0 |
| 4.0ms | (+ (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 2.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 1.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 112.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 95.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 86.0ms | (+ (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 50.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 423.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 361.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 344.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 273.0ms | (- (exp (* 1/3 (+ (log -4) (+ (log a) (log c))))) (* 1/12 (* (exp (* 1/3 (- (log -4) (+ (* 2 (log a)) (* 2 (log c)))))) (pow b 2)))) |
| 264.0ms | (- (exp (* 1/3 (+ (log -4) (+ (log a) (log c))))) (* 1/12 (* (exp (* 1/3 (- (log -4) (+ (* 2 (log a)) (* 2 (log c)))))) (pow b 2)))) |
8 alts after pruning (6 fresh and 2 done)
Merged error: 7.5b
Found 4 expressions with local error:
| 23.1b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 23.1b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 22.4b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 9.1b | (- (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 8× | add-sqr-sqrt |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 6× | add-log-exp |
| 6× | cbrt-prod |
| 4× | flip-- |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | flip3-- |
| 4× | cbrt-div |
| 4× | pow1 |
| 3× | sqrt-prod |
| 2× | sqrt-div |
| 2× | pow1/3 |
| 1× | diff-log |
| 1× | pow1/2 |
| 1× | sub-neg |
| 1× | rem-sqrt-square |
| 1× | neg-sub0 |
| 1× | associate--l- |
| 4.0ms | (- (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 2.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 1.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 104.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 102.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 86.0ms | (- (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 53.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 428.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 384.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 347.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 292.0ms | (- (exp (* 1/3 (+ (log -4) (+ (log a) (log c))))) (* 1/12 (* (exp (* 1/3 (- (log -4) (+ (* 2 (log a)) (* 2 (log c)))))) (pow b 2)))) |
| 283.0ms | (- (exp (* 1/3 (+ (log -4) (+ (log a) (log c))))) (* 1/12 (* (exp (* 1/3 (- (log -4) (+ (* 2 (log a)) (* 2 (log c)))))) (pow b 2)))) |
8 alts after pruning (5 fresh and 3 done)
Merged error: 7.5b
87.3% (1.5b remaining)
Error of 9.1b against oracle of 7.6b and baseline of 19.3b
| 1.9s | 8730× | body | 80 | valid |
| 527.0ms | 2975× | body | 80 | nan |