


Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.2
Initial simplification10.9
rmApplied *-un-lft-identity10.9
Applied times-frac8.7
Simplified8.7
Final simplification8.7
herbie shell --seed 2018362 +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: 21.5s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 10.6b
Found 3 expressions with local error:
| 2.6b | (/ (* (sin th) (sin ky)) (hypot (sin kx) (sin ky))) |
| 0.2b | (* (sin th) (sin ky)) |
| 0.1b | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 17.0ms | (/ (* (sin th) (sin ky)) (hypot (sin kx) (sin ky))) |
| 7.0ms | (* (sin th) (sin ky)) |
| 0.0ms | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 362.0ms | (/ (* (sin th) (sin ky)) (hypot (sin kx) (sin ky))) |
| 125.0ms | (hypot (sin kx) (sin ky)) |
| 57.0ms | (* (sin th) (sin ky)) |
33 calls. Slowest were:
| 591.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)))) |
| 537.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)))) |
| 419.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
19 alts after pruning (19 fresh and 0 done)
Merged error: 8.9b
Found 3 expressions with local error:
| 0.1b | (/ (sin th) (/ (hypot (sin kx) (sin ky)) (sin ky))) |
| 0.1b | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 0.1b | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 9.0ms | (/ (sin th) (/ (hypot (sin kx) (sin ky)) (sin ky))) |
| 7.0ms | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 0.0ms | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 312.0ms | (/ (sin th) (/ (hypot (sin kx) (sin ky)) (sin ky))) |
| 223.0ms | (/ (hypot (sin kx) (sin ky)) (sin ky)) |
| 166.0ms | (hypot (sin kx) (sin ky)) |
132 calls. Slowest were:
| 414.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
| 409.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))))) |
| 380.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)))) |
23 alts after pruning (23 fresh and 0 done)
Merged error: 8.9b
Found 3 expressions with local error:
| 0.1b | (* (sin th) (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 0.1b | (/ (sin ky) (hypot (sin kx) (sin ky))) |
| 0.1b | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 5.0ms | (* (sin th) (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 3.0ms | (/ (sin ky) (hypot (sin kx) (sin ky))) |
| 0.0ms | (hypot (sin kx) (sin ky)) |
3 calls. Slowest were:
| 291.0ms | (* (sin th) (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 197.0ms | (/ (sin ky) (hypot (sin kx) (sin ky))) |
| 167.0ms | (hypot (sin kx) (sin ky)) |
55 calls. Slowest were:
| 517.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))))) |
| 344.0ms | (- (+ (* 1/12 (* (pow kx 2) ky)) ky) (* 1/6 (pow ky 3))) |
| 188.0ms | (- (+ (* 1/6 (* kx ky)) (* 7/360 (* (pow kx 3) ky))) (* 71/720 (* kx (pow ky 3)))) |
23 alts after pruning (22 fresh and 1 done)
Merged error: 8.9b
Found 4 expressions with local error:
| 0.4b | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 0.4b | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 0.4b | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 0.3b | (* (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) (cbrt (/ (sin ky) (hypot (sin kx) (sin ky))))) |
4 calls. Slowest were:
| 12.0ms | (* (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) (cbrt (/ (sin ky) (hypot (sin kx) (sin ky))))) |
| 2.0ms | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 2.0ms | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
4 calls. Slowest were:
| 329.0ms | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 275.0ms | (* (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) (cbrt (/ (sin ky) (hypot (sin kx) (sin ky))))) |
| 260.0ms | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
| 246.0ms | (cbrt (/ (sin ky) (hypot (sin kx) (sin ky)))) |
98 calls. Slowest were:
| 456.0ms | (- (+ (exp (* 1/3 (- (log ky) (log kx)))) (* 1/18 (* (pow kx 2) (exp (* 1/3 (- (log ky) (log kx))))))) (* 13/108 (* (pow ky 2) (exp (* 1/3 (- (log ky) (log kx))))))) |
| 436.0ms | (- (+ (exp (* 1/3 (- (log ky) (log kx)))) (* 1/18 (* (pow kx 2) (exp (* 1/3 (- (log ky) (log kx))))))) (* 13/108 (* (pow ky 2) (exp (* 1/3 (- (log ky) (log kx))))))) |
| 416.0ms | (- (+ (exp (* 1/3 (- (log ky) (log kx)))) (* 1/18 (* (pow kx 2) (exp (* 1/3 (- (log ky) (log kx))))))) (* 13/108 (* (pow ky 2) (exp (* 1/3 (- (log ky) (log kx))))))) |
22 alts after pruning (21 fresh and 1 done)
Merged error: 8.9b
0% (0.1b remaining)
Error of 8.7b against oracle of 8.5b and baseline of 8.7b