


Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.3
Simplified11.0
rmApplied associate-/l*8.7
rmApplied clear-num8.9
Final simplification8.9
herbie shell --seed 2019004 +o rules:numerics
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))
Time bar (total: 36.3s)Debug log
1 calls. Slowest were:
| 28.0ms | (* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 10.9b
Found 3 expressions with local error:
| 1.6b | (/ (* (sin th) (sin ky)) (hypot (sin kx) (sin ky))) |
| 0.2b | (* (sin th) (sin ky)) |
| 0.0b | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 9.0ms | (/ (* (sin th) (sin ky)) (hypot (sin kx) (sin ky))) |
| 4.0ms | (* (sin th) (sin ky)) |
| 0.0ms | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 334.0ms | (/ (* (sin th) (sin ky)) (hypot (sin kx) (sin ky))) |
| 137.0ms | (hypot (sin kx) (sin ky)) |
| 78.0ms | (* (sin th) (sin ky)) |
33 calls. Slowest were:
| 554.0ms | (/ (* (* (* (sin th) (sin ky)) (* (sin th) (sin ky))) (* (sin th) (sin ky))) (* (* (hypot (sin kx) (sin ky)) (hypot (sin kx) (sin ky))) (hypot (sin kx) (sin ky)))) |
| 493.0ms | (/ (* (* (* (sin th) (sin th)) (sin th)) (* (* (sin ky) (sin ky)) (sin ky))) (* (* (hypot (sin kx) (sin ky)) (hypot (sin kx) (sin ky))) (hypot (sin kx) (sin ky)))) |
| 405.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
16 alts after pruning (16 fresh and 0 done)
Merged error: 10.2b
Found 3 expressions with local error:
| 0.2b | (/ (sin th) (/ (hypot (sin kx) (sin ky)) (sin ky))) |
| 0.2b | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 0.0b | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 10.0ms | (/ (sin th) (/ (hypot (sin kx) (sin ky)) (sin ky))) |
| 7.0ms | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 3.0ms | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 279.0ms | (/ (sin th) (/ (hypot (sin kx) (sin ky)) (sin ky))) |
| 256.0ms | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 135.0ms | (hypot (sin kx) (sin ky)) |
132 calls. Slowest were:
| 454.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
| 396.0ms | (/ (* (* (sin th) (sin th)) (sin th)) (/ (* (* (hypot (sin kx) (sin ky)) (hypot (sin kx) (sin ky))) (hypot (sin kx) (sin ky))) (* (* (sin ky) (sin ky)) (sin ky)))) |
| 345.0ms | (/ (* (cbrt (sin th)) (cbrt (sin th))) (/ (* (cbrt (hypot (sin kx) (sin ky))) (cbrt (hypot (sin kx) (sin ky)))) (* (cbrt (sin ky)) (cbrt (sin ky))))) |
19 alts after pruning (19 fresh and 0 done)
Merged error: 10.1b
Found 3 expressions with local error:
| 0.3b | (* (/ (sin th) (hypot (sin kx) (sin ky))) (sin ky)) |
| 0.2b | (/ (sin th) (hypot (sin kx) (sin ky))) |
| 0.0b | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 16.0ms | (* (/ (sin th) (hypot (sin kx) (sin ky))) (sin ky)) |
| 7.0ms | (/ (sin th) (hypot (sin kx) (sin ky))) |
| 0.0ms | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 276.0ms | (* (/ (sin th) (hypot (sin kx) (sin ky))) (sin ky)) |
| 258.0ms | (/ (sin th) (hypot (sin kx) (sin ky))) |
| 147.0ms | (hypot (sin kx) (sin ky)) |
55 calls. Slowest were:
| 508.0ms | (* (/ (* (* (sin th) (sin th)) (sin th)) (* (* (hypot (sin kx) (sin ky)) (hypot (sin kx) (sin ky))) (hypot (sin kx) (sin ky)))) (* (* (sin ky) (sin ky)) (sin ky))) |
| 378.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
| 166.0ms | (* (* (* (/ (sin th) (hypot (sin kx) (sin ky))) (/ (sin th) (hypot (sin kx) (sin ky)))) (/ (sin th) (hypot (sin kx) (sin ky)))) (* (* (sin ky) (sin ky)) (sin ky))) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 10.1b
Found 4 expressions with local error:
| 0.4b | (/ 1 (/ (/ (hypot (sin kx) (sin ky)) (sin ky)) (sin th))) |
| 0.2b | (/ (/ (hypot (sin kx) (sin ky)) (sin ky)) (sin th)) |
| 0.2b | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 0.0b | (hypot (sin kx) (sin ky)) |
4 calls. Slowest were:
| 12.0ms | (/ (/ (hypot (sin kx) (sin ky)) (sin ky)) (sin th)) |
| 7.0ms | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 6.0ms | (/ 1 (/ (/ (hypot (sin kx) (sin ky)) (sin ky)) (sin th))) |
4 calls. Slowest were:
| 263.0ms | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 261.0ms | (/ 1 (/ (/ (hypot (sin kx) (sin ky)) (sin ky)) (sin th))) |
| 237.0ms | (/ (/ (hypot (sin kx) (sin ky)) (sin ky)) (sin th)) |
| 150.0ms | (hypot (sin kx) (sin ky)) |
180 calls. Slowest were:
| 393.0ms | (/ (/ (* (* (hypot (sin kx) (sin ky)) (hypot (sin kx) (sin ky))) (hypot (sin kx) (sin ky))) (* (* (sin ky) (sin ky)) (sin ky))) (* (* (sin th) (sin th)) (sin th))) |
| 361.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
| 300.0ms | (/ (/ (* (cbrt (hypot (sin kx) (sin ky))) (cbrt (hypot (sin kx) (sin ky)))) (* (cbrt (sin ky)) (cbrt (sin ky)))) (* (cbrt (sin th)) (cbrt (sin th)))) |
24 alts after pruning (23 fresh and 1 done)
Merged error: 10.1b
0% (0.4b remaining)
Error of 8.9b against oracle of 8.5b and baseline of 8.9b