


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus i



Bits error versus j
Results
if x < -1.968353631039049e-186Initial program 10.3
rmApplied sub-neg10.3
Applied distribute-rgt-in10.3
rmApplied distribute-lft-neg-in10.3
Applied associate-*l*10.7
rmApplied associate-*l*10.5
if -1.968353631039049e-186 < x < 4.3723546946334725e-246Initial program 15.8
rmApplied sub-neg15.8
Applied distribute-rgt-in15.8
Taylor expanded around 0 15.9
if 4.3723546946334725e-246 < x Initial program 11.3
rmApplied sub-neg11.3
Applied distribute-rgt-in11.3
rmApplied distribute-lft-neg-in11.3
Applied associate-*l*11.0
rmApplied add-cube-cbrt11.2
Applied associate-*l*11.2
Final simplification11.9
herbie shell --seed 2019010 +o rules:numerics
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))
Time bar (total: 26.0s)Debug log
| 161.0ms | (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 12.2b
Found 4 expressions with local error:
| 6.3b | (* (- (* t c) (* y i)) j) |
| 5.0b | (fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b))) |
| 4.8b | (* (- (* z c) (* i a)) b) |
| 0.2b | (- (* z y) (* t a)) |
| 6× | add-log-exp |
| 6× | add-cube-cbrt |
| 6× | associate-*l* |
| 6× | *-un-lft-identity |
| 6× | add-sqr-sqrt |
| 4× | log1p-expm1-u |
| 4× | add-exp-log |
| 4× | associate-*l/ |
| 4× | add-cbrt-cube |
| 4× | pow1 |
| 4× | expm1-log1p-u |
| 3× | flip-- |
| 3× | flip3-- |
| 2× | *-commutative |
| 1× | fma-udef |
| 1× | prod-diff |
| 1× | diff-log |
| 1× | fma-neg |
| 1× | sub-neg |
| 10.0ms | (* (- (* t c) (* y i)) j) |
| 5.0ms | (* (- (* z c) (* i a)) b) |
| 2.0ms | (- (* z y) (* t a)) |
| 0.0ms | (fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b))) |
| 435.0ms | (fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b))) |
| 47.0ms | (* (- (* z c) (* i a)) b) |
| 43.0ms | (* (- (* t c) (* y i)) j) |
| 28.0ms | (- (* z y) (* t a)) |
| 263.0ms | (- (* a (* i b)) (+ (* z (* b c)) (* i (* j y)))) |
| 219.0ms | (- (* a (* i b)) (+ (* z (* b c)) (* i (* j y)))) |
| 204.0ms | (* (- (pow (* z c) 3) (pow (* i a) 3)) b) |
| 140.0ms | (* (- (* (* z c) (* z c)) (* (* i a) (* i a))) b) |
| 139.0ms | (* (- (pow (* t c) 3) (pow (* y i) 3)) j) |
17 alts after pruning (17 fresh and 0 done)
Merged error: 7.6b
Found 4 expressions with local error:
| 6.3b | (* j (- (* c t) (* i y))) |
| 6.1b | (* x (- (* y z) (* t a))) |
| 4.8b | (* b (- (* c z) (* i a))) |
| 0.2b | (- (* y z) (* t a)) |
| 9× | associate-*r* |
| 9× | distribute-lft-in |
| 9× | distribute-rgt-in |
| 7× | add-cube-cbrt |
| 7× | prod-diff |
| 7× | *-un-lft-identity |
| 7× | sub-neg |
| 7× | add-sqr-sqrt |
| 6× | add-log-exp |
| 6× | associate-*r/ |
| 4× | flip-- |
| 4× | log1p-expm1-u |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | flip3-- |
| 4× | pow1 |
| 4× | expm1-log1p-u |
| 3× | *-commutative |
| 1× | diff-log |
| 1× | fma-neg |
| 8.0ms | (* j (- (* c t) (* i y))) |
| 4.0ms | (* b (- (* c z) (* i a))) |
| 4.0ms | (* x (- (* y z) (* t a))) |
| 2.0ms | (- (* y z) (* t a)) |
| 64.0ms | (* b (- (* c z) (* i a))) |
| 62.0ms | (* j (- (* c t) (* i y))) |
| 55.0ms | (* x (- (* y z) (* t a))) |
| 46.0ms | (- (* y z) (* t a)) |
| 299.0ms | (* (fma (- y) i (* y i)) j) |
| 211.0ms | (+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y)))) |
| 173.0ms | (+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a)))) |
| 150.0ms | (+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a)))) |
| 109.0ms | (- (* x (* z y)) (* a (* x t))) |
18 alts after pruning (18 fresh and 0 done)
Merged error: 7.6b
Found 4 expressions with local error:
| 6.6b | (* (- (* i y)) j) |
| 6.1b | (* x (- (* y z) (* t a))) |
| 4.8b | (* b (- (* c z) (* i a))) |
| 4.8b | (* (* c t) j) |
| 7× | add-cube-cbrt |
| 7× | associate-*l* |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | associate-*r* |
| 6× | distribute-lft-in |
| 6× | distribute-rgt-in |
| 4× | add-log-exp |
| 4× | log1p-expm1-u |
| 4× | *-commutative |
| 4× | add-exp-log |
| 4× | associate-*r/ |
| 4× | prod-diff |
| 4× | add-cbrt-cube |
| 4× | sub-neg |
| 4× | pow1 |
| 4× | expm1-log1p-u |
| 2× | flip-- |
| 2× | flip3-- |
| 1× | distribute-rgt-neg-in |
| 1× | neg-mul-1 |
| 1× | distribute-lft-neg-in |
| 1× | distribute-lft-neg-out |
| 5.0ms | (* (* c t) j) |
| 4.0ms | (* b (- (* c z) (* i a))) |
| 4.0ms | (* x (- (* y z) (* t a))) |
| 3.0ms | (* (- (* i y)) j) |
| 70.0ms | (* b (- (* c z) (* i a))) |
| 54.0ms | (* x (- (* y z) (* t a))) |
| 25.0ms | (* (* c t) j) |
| 20.0ms | (* (- (* i y)) j) |
| 211.0ms | (+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a)))) |
| 185.0ms | (+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a)))) |
| 96.0ms | (- (* x (* z y)) (* a (* x t))) |
| 69.0ms | (- (* x (* z y)) (* a (* x t))) |
| 66.0ms | (- (* z (* b c)) (* a (* i b))) |
18 alts after pruning (18 fresh and 0 done)
Merged error: 6.2b
Found 4 expressions with local error:
| 6.1b | (* x (- (* y z) (* t a))) |
| 4.8b | (* b (- (* c z) (* i a))) |
| 4.8b | (* (* c t) j) |
| 4.6b | (* (- i) (* y j)) |
| 7× | add-cube-cbrt |
| 7× | associate-*r* |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | add-exp-log |
| 6× | add-cbrt-cube |
| 6× | distribute-lft-in |
| 6× | pow1 |
| 6× | distribute-rgt-in |
| 5× | associate-*l* |
| 4× | add-log-exp |
| 4× | log1p-expm1-u |
| 4× | *-commutative |
| 4× | associate-*r/ |
| 4× | prod-diff |
| 4× | sub-neg |
| 4× | expm1-log1p-u |
| 2× | flip-- |
| 2× | flip3-- |
| 1× | cbrt-unprod |
| 1× | prod-exp |
| 1× | pow-prod-down |
| 1× | neg-mul-1 |
| 1× | distribute-lft-neg-out |
| 8.0ms | (* x (- (* y z) (* t a))) |
| 6.0ms | (* b (- (* c z) (* i a))) |
| 4.0ms | (* (- i) (* y j)) |
| 2.0ms | (* (* c t) j) |
| 72.0ms | (* b (- (* c z) (* i a))) |
| 45.0ms | (* x (- (* y z) (* t a))) |
| 29.0ms | (* (- i) (* y j)) |
| 26.0ms | (* (* c t) j) |
| 613.0ms | (* (* (* (- i) (- i)) (- i)) (* (* (* y j) (* y j)) (* y j))) |
| 227.0ms | (+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a)))) |
| 185.0ms | (+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a)))) |
| 90.0ms | (- (* x (* z y)) (* a (* x t))) |
| 88.0ms | (- (* x (* z y)) (* a (* x t))) |
17 alts after pruning (17 fresh and 0 done)
Merged error: 6.2b
-0.8% (5.9b remaining)
Error of 11.9b against oracle of 6.0b and baseline of 11.8b