


Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied associate-*l/0.1
Simplified0.1
rmApplied distribute-lft-in0.1
rmApplied sqrt-prod0.1
Applied associate-/r*0.1
rmApplied add-sqr-sqrt0.1
Applied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019005 +o rules:numerics
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
(* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))))
Time bar (total: 40.6s)Debug log
1 calls. Slowest were:
| 152.0ms | (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 0.3b | (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) |
| 0.2b | (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand) |
| 0.1b | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
| 0.1b | (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
4 calls. Slowest were:
| 4.0ms | (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
| 4.0ms | (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand) |
| 2.0ms | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
4 calls. Slowest were:
| 94.0ms | (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand) |
| 62.0ms | (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
| 41.0ms | (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) |
| 37.0ms | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
50 calls. Slowest were:
| 598.0ms | (* (- (* a a) (* (/ 1.0 3.0) (/ 1.0 3.0))) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
| 427.0ms | (* (+ a (/ 1.0 3.0)) (- 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
| 423.0ms | (* (- (pow a 3) (pow (/ 1.0 3.0) 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.2b | (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))) |
| 0.1b | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
| 0.1b | (* (- a (/ 1.0 3.0)) (+ 1 (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))) |
| 0.0b | (* 9 (- a (/ 1.0 3.0))) |
4 calls. Slowest were:
| 5.0ms | (* (- a (/ 1.0 3.0)) (+ 1 (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))) |
| 2.0ms | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
| 2.0ms | (* 9 (- a (/ 1.0 3.0))) |
4 calls. Slowest were:
| 58.0ms | (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))) |
| 55.0ms | (* (- a (/ 1.0 3.0)) (+ 1 (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))) |
| 27.0ms | (* 9 (- a (/ 1.0 3.0))) |
| 21.0ms | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
52 calls. Slowest were:
| 629.0ms | (* (- (* a a) (* (/ 1.0 3.0) (/ 1.0 3.0))) (+ 1 (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))) |
| 584.0ms | (* (+ a (/ 1.0 3.0)) (- 1 (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))) |
| 456.0ms | (* (+ a (/ 1.0 3.0)) (+ (* 1 1) (- (* (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))) (/ rand (sqrt (* 9 (- a (/ 1.0 3.0)))))) (* 1 (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 5.1b | (* (- a (/ 1.0 3.0)) (/ rand (sqrt (* 9 (- a (/ 1.0 3.0)))))) |
| 0.2b | (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))) |
| 0.1b | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
| 0.0b | (* 9 (- a (/ 1.0 3.0))) |
4 calls. Slowest were:
| 5.0ms | (* (- a (/ 1.0 3.0)) (/ rand (sqrt (* 9 (- a (/ 1.0 3.0)))))) |
| 2.0ms | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
| 1.0ms | (* 9 (- a (/ 1.0 3.0))) |
4 calls. Slowest were:
| 90.0ms | (* (- a (/ 1.0 3.0)) (/ rand (sqrt (* 9 (- a (/ 1.0 3.0)))))) |
| 81.0ms | (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))) |
| 37.0ms | (sqrt (* 9 (- a (/ 1.0 3.0)))) |
| 32.0ms | (* 9 (- a (/ 1.0 3.0))) |
48 calls. Slowest were:
| 484.0ms | (sqrt (* 9 (- (pow a 3) (pow (/ 1.0 3.0) 3)))) |
| 413.0ms | (* (* (* (- a (/ 1.0 3.0)) (- a (/ 1.0 3.0))) (- a (/ 1.0 3.0))) (* (* (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))) (/ rand (sqrt (* 9 (- a (/ 1.0 3.0)))))) (/ rand (sqrt (* 9 (- a (/ 1.0 3.0))))))) |
| 391.0ms | (* (- (pow a 3) (pow (/ 1.0 3.0) 3)) rand) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 5.1b | (* (- a (/ 1.0 3.0)) (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0))))) |
| 0.3b | (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0)))) |
| 0.0b | (sqrt (- a (/ 1.0 3.0))) |
| 0.0b | (+ (* (- a (/ 1.0 3.0)) 1) (* (- a (/ 1.0 3.0)) (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0)))))) |
4 calls. Slowest were:
| 7.0ms | (* (- a (/ 1.0 3.0)) (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0))))) |
| 6.0ms | (+ (* (- a (/ 1.0 3.0)) 1) (* (- a (/ 1.0 3.0)) (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0)))))) |
| 4.0ms | (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0)))) |
4 calls. Slowest were:
| 67.0ms | (* (- a (/ 1.0 3.0)) (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0))))) |
| 63.0ms | (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0)))) |
| 45.0ms | (+ (* (- a (/ 1.0 3.0)) 1) (* (- a (/ 1.0 3.0)) (/ (/ rand (sqrt 9)) (sqrt (- a (/ 1.0 3.0)))))) |
| 26.0ms | (sqrt (- a (/ 1.0 3.0))) |
146 calls. Slowest were:
| 655.0ms | (* (+ (* a a) (+ (* (/ 1.0 3.0) (/ 1.0 3.0)) (* a (/ 1.0 3.0)))) (+ (* a a) (+ (* (/ 1.0 3.0) (/ 1.0 3.0)) (* a (/ 1.0 3.0))))) |
| 458.0ms | (* (+ (* a a) (+ (* (/ 1.0 3.0) (/ 1.0 3.0)) (* a (/ 1.0 3.0)))) (* (+ a (/ 1.0 3.0)) (sqrt (- a (/ 1.0 3.0))))) |
| 422.0ms | (* (+ a (/ 1.0 3.0)) (* (+ (* a a) (+ (* (/ 1.0 3.0) (/ 1.0 3.0)) (* a (/ 1.0 3.0)))) (sqrt (- a (/ 1.0 3.0))))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 0.0b
0% (0.1b remaining)
Error of 0.1b against oracle of 0.0b and baseline of 0.1b