


Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.4
Taylor expanded around 0 1.4
Final simplification1.4
herbie shell --seed 2019007 +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: 1.4m)Debug log
1 calls. Slowest were:
| 185.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: 15.9b
Found 4 expressions with local error:
| 35.4b | (cos (- (/ (* K (+ m n)) 2) M)) |
| 0.0b | (- (/ (* K (+ m n)) 2) M) |
| 0.0b | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
4 calls. Slowest were:
| 133.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 12.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 7.0ms | (- (/ (* K (+ m n)) 2) M) |
4 calls. Slowest were:
| 135.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 63.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 57.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 49.0ms | (- (/ (* K (+ m n)) 2) M) |
155 calls. Slowest were:
| 701.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 653.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 600.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.8b
Found 2 expressions with local error:
| 0.0b | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
2 calls. Slowest were:
| 129.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 5.0ms | (pow (- (/ (+ m n) 2) M) 2) |
2 calls. Slowest were:
| 133.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 44.0ms | (pow (- (/ (+ m n) 2) M) 2) |
143 calls. Slowest were:
| 613.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 596.0ms | (fma (sqrt (- (pow (- (/ (+ m n) 2) M) 2))) (sqrt (- (pow (- (/ (+ m n) 2) M) 2))) (- (* (- l (fabs (- m n))) 1))) |
| 592.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.8b
Found 4 expressions with local error:
| 45.2b | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 15.0b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 15.0b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 15.0b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
4 calls. Slowest were:
| 35.0ms | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 2.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 2.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
4 calls. Slowest were:
| 210.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 179.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 176.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 55.0ms | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
27 calls. Slowest were:
| 243.0ms | (- (exp (* 1/3 (+ (log M) (log -1)))) (+ (* 1/6 (* m (* K (exp (* 1/3 (- (log -1) (* 2 (log M)))))))) (* 1/6 (* K (* n (exp (* 1/3 (- (log -1) (* 2 (log M)))))))))) |
| 227.0ms | (cbrt (- (pow (/ (* K (+ m n)) 2) 3) (pow M 3))) |
| 222.0ms | (- (exp (* 1/3 (+ (log M) (log -1)))) (+ (* 1/6 (* m (* K (exp (* 1/3 (- (log -1) (* 2 (log M)))))))) (* 1/6 (* K (* n (exp (* 1/3 (- (log -1) (* 2 (log M)))))))))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.8b
Found 4 expressions with local error:
| 35.4b | (cos (- (/ (* K (+ m n)) 2) M)) |
| 35.4b | (cos (- (/ (* K (+ m n)) 2) M)) |
| 35.4b | (cos (- (/ (* K (+ m n)) 2) M)) |
| 0.5b | (cbrt (* (* (cos (- (/ (* K (+ m n)) 2) M)) (cos (- (/ (* K (+ m n)) 2) M))) (cos (- (/ (* K (+ m n)) 2) M)))) |
4 calls. Slowest were:
| 10.0ms | (cbrt (* (* (cos (- (/ (* K (+ m n)) 2) M)) (cos (- (/ (* K (+ m n)) 2) M))) (cos (- (/ (* K (+ m n)) 2) M)))) |
| 6.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 6.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
4 calls. Slowest were:
| 77.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 64.0ms | (cbrt (* (* (cos (- (/ (* K (+ m n)) 2) M)) (cos (- (/ (* K (+ m n)) 2) M))) (cos (- (/ (* K (+ m n)) 2) M)))) |
| 64.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 48.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
24 calls. Slowest were:
| 165.0ms | (cos (- (+ (* 1/2 (* m K)) (* 1/2 (* K n))) M)) |
| 159.0ms | (cbrt (* (+ (cos (+ (- (/ (* K (+ m n)) 2) M) (- (/ (* K (+ m n)) 2) M))) (cos (- (- (/ (* K (+ m n)) 2) M) (- (/ (* K (+ m n)) 2) M)))) (cos (- (/ (* K (+ m n)) 2) M)))) |
| 154.0ms | (cos (- (+ (* 1/2 (* m K)) (* 1/2 (* K n))) M)) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.8b
0% (0.2b remaining)
Error of 1.4b against oracle of 1.2b and baseline of 1.4b