


Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.3
Taylor expanded around 0 1.5
rmApplied add-cube-cbrt1.5
Applied unpow-prod-down1.5
Simplified1.5
rmApplied add-cube-cbrt1.5
Applied associate-*r*1.5
Final simplification1.5
herbie shell --seed 2019002 +o rules:numerics
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))
Time bar (total: 2.2m)Debug log
1 calls. Slowest were:
| 138.0ms | (* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 13.5b
Found 4 expressions with local error:
| 31.9b | (cos (- (/ (* K (+ m n)) 2) M)) |
| 0.0b | (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))) |
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
| 0.0b | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
4 calls. Slowest were:
| 307.0ms | (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))) |
| 143.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 13.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
4 calls. Slowest were:
| 126.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 100.0ms | (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))) |
| 65.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 60.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
219 calls. Slowest were:
| 834.0ms | (exp (fma (pow 1 2) (- (pow (- (/ (+ m n) 2) M) 2)) (- (* (cbrt (- l (fabs (- m n)))) (* (cbrt (- l (fabs (- m n)))) (cbrt (- l (fabs (- m n))))))))) |
| 672.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 661.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 1.4b
Found 3 expressions with local error:
| 0.0b | (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))) |
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
| 0.0b | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
3 calls. Slowest were:
| 174.0ms | (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))) |
| 103.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 5.0ms | (pow (- (/ (+ m n) 2) M) 2) |
3 calls. Slowest were:
| 87.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 83.0ms | (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))) |
| 38.0ms | (pow (- (/ (+ m n) 2) M) 2) |
213 calls. Slowest were:
| 770.0ms | (exp (fma (pow (* (cbrt (- (/ (+ m n) 2) M)) (cbrt (- (/ (+ m n) 2) M))) 2) (- (pow (cbrt (- (/ (+ m n) 2) M)) 2)) (- (* (cbrt (- l (fabs (- m n)))) (* (cbrt (- l (fabs (- m n)))) (cbrt (- l (fabs (- m n))))))))) |
| 719.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 707.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 1.4b
Found 4 expressions with local error:
| 0.6b | (cbrt (- (/ (+ m n) 2) M)) |
| 0.6b | (cbrt (- (/ (+ n m) 2) M)) |
| 0.5b | (pow (cbrt (- (/ (+ m n) 2) M)) 2) |
| 0.1b | (* (cbrt (- (/ (+ n m) 2) M)) (- (/ (+ n m) 2) M)) |
4 calls. Slowest were:
| 27.0ms | (* (cbrt (- (/ (+ n m) 2) M)) (- (/ (+ n m) 2) M)) |
| 5.0ms | (pow (cbrt (- (/ (+ m n) 2) M)) 2) |
| 2.0ms | (cbrt (- (/ (+ m n) 2) M)) |
4 calls. Slowest were:
| 245.0ms | (pow (cbrt (- (/ (+ m n) 2) M)) 2) |
| 244.0ms | (cbrt (- (/ (+ n m) 2) M)) |
| 210.0ms | (* (cbrt (- (/ (+ n m) 2) M)) (- (/ (+ n m) 2) M)) |
| 202.0ms | (cbrt (- (/ (+ m n) 2) M)) |
61 calls. Slowest were:
| 408.0ms | (- (pow M 4/3) (+ (* 2/3 (* m (pow M 1/3))) (* 2/3 (* (pow M 1/3) n)))) |
| 344.0ms | (* (cbrt (- (* (/ (+ n m) 2) (/ (+ n m) 2)) (* M M))) (- (* (/ (+ n m) 2) (/ (+ n m) 2)) (* M M))) |
| 306.0ms | (cbrt (- (* (/ (+ n m) 2) (/ (+ n m) 2)) (* M M))) |
5 alts after pruning (5 fresh and 0 done)
Merged error: 1.4b
Found 4 expressions with local error:
| 0.6b | (cbrt (- (/ (+ n m) 2) M)) |
| 0.6b | (cbrt (- (/ (+ n m) 2) M)) |
| 0.6b | (cbrt (- (/ (+ n m) 2) M)) |
| 0.6b | (cbrt (- (/ (+ n m) 2) M)) |
4 calls. Slowest were:
| 7.0ms | (cbrt (- (/ (+ n m) 2) M)) |
| 5.0ms | (cbrt (- (/ (+ n m) 2) M)) |
| 4.0ms | (cbrt (- (/ (+ n m) 2) M)) |
4 calls. Slowest were:
| 228.0ms | (cbrt (- (/ (+ n m) 2) M)) |
| 221.0ms | (cbrt (- (/ (+ n m) 2) M)) |
| 207.0ms | (cbrt (- (/ (+ n m) 2) M)) |
| 173.0ms | (cbrt (- (/ (+ n m) 2) M)) |
32 calls. Slowest were:
| 711.0ms | (- (+ (* 1/6 (* (pow (/ 1 (pow M 2)) 1/3) n)) (exp (* 1/3 (+ (log M) (log -1))))) (* 1/6 (* m (exp (* 1/3 (- (log -1) (* 2 (log M)))))))) |
| 372.0ms | (- (+ (* 1/6 (* (pow (/ 1 (pow M 2)) 1/3) n)) (exp (* 1/3 (+ (log M) (log -1))))) (* 1/6 (* m (exp (* 1/3 (- (log -1) (* 2 (log M)))))))) |
| 303.0ms | (- (+ (* 1/6 (* (pow (/ 1 (pow M 2)) 1/3) n)) (exp (* 1/3 (+ (log M) (log -1))))) (* 1/6 (* m (exp (* 1/3 (- (log -1) (* 2 (log M)))))))) |
5 alts after pruning (4 fresh and 1 done)
Merged error: 1.4b
0% (0.2b remaining)
Error of 1.5b against oracle of 1.3b and baseline of 1.5b