


Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.2
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2018365 +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.5m)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 16.2b
Found 4 expressions with local error:
| 35.5b | (cos (- (/ (* K (+ m n)) 2) M)) |
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
| 0.0b | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 0.0b | (* K (+ m n)) |
4 calls. Slowest were:
| 165.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 12.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 10.0ms | (pow (- (/ (+ m n) 2) M) 2) |
4 calls. Slowest were:
| 138.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 73.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 66.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 16.0ms | (* K (+ m n)) |
159 calls. Slowest were:
| 722.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 680.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 679.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.6b
Found 3 expressions with local error:
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
| 0.0b | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 0.0b | (- (/ (+ m n) 2) M) |
3 calls. Slowest were:
| 144.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 5.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 5.0ms | (- (/ (+ m n) 2) M) |
3 calls. Slowest were:
| 117.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 57.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 23.0ms | (- (/ (+ m n) 2) M) |
149 calls. Slowest were:
| 712.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 701.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 691.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0.6b
Found 4 expressions with local error:
| 17.8b | (cos (- (/ (expm1 (log1p (* K (+ m n)))) 2) M)) |
| 7.0b | (log1p (* K (+ m n))) |
| 1.5b | (expm1 (log1p (* K (+ m n)))) |
| 0.0b | (pow (- (/ (+ m n) 2) M) 2) |
4 calls. Slowest were:
| 14.0ms | (cos (- (/ (expm1 (log1p (* K (+ m n)))) 2) M)) |
| 10.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 1.0ms | (log1p (* K (+ m n))) |
4 calls. Slowest were:
| 345.0ms | (cos (- (/ (expm1 (log1p (* K (+ m n)))) 2) M)) |
| 128.0ms | (expm1 (log1p (* K (+ m n)))) |
| 95.0ms | (log1p (* K (+ m n))) |
| 65.0ms | (pow (- (/ (+ m n) 2) M) 2) |
21 calls. Slowest were:
| 1.5s | (- (cos (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2))) (* 1/2 (/ (* (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (sin (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2)))) (* m K)))) |
| 749.0ms | (- (+ (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (/ (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (* m K))) 1) |
| 748.0ms | (- (+ (/ (exp (- (+ (log (/ -1 m)) (log (/ -1 K))))) (* m K)) (exp (- (+ (log (/ -1 m)) (log (/ -1 K)))))) 1) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0.6b
Found 4 expressions with local error:
| 17.9b | (cos (- (/ (expm1 (* (sqrt (log1p (* K (+ m n)))) (sqrt (log1p (* K (+ m n)))))) 2) M)) |
| 7.0b | (log1p (* K (+ m n))) |
| 7.0b | (log1p (* K (+ m n))) |
| 2.2b | (sqrt (log1p (* K (+ m n)))) |
4 calls. Slowest were:
| 13.0ms | (cos (- (/ (expm1 (* (sqrt (log1p (* K (+ m n)))) (sqrt (log1p (* K (+ m n)))))) 2) M)) |
| 1.0ms | (sqrt (log1p (* K (+ m n)))) |
| 1.0ms | (log1p (* K (+ m n))) |
4 calls. Slowest were:
| 438.0ms | (sqrt (log1p (* K (+ m n)))) |
| 370.0ms | (cos (- (/ (expm1 (* (sqrt (log1p (* K (+ m n)))) (sqrt (log1p (* K (+ m n)))))) 2) M)) |
| 81.0ms | (log1p (* K (+ m n))) |
| 74.0ms | (log1p (* K (+ m n))) |
21 calls. Slowest were:
| 1.6s | (- (cos (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2))) (* 1/2 (/ (* (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (sin (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2)))) (* m K)))) |
| 309.0ms | (+ (* 1/2 (/ (sqrt (/ -1 (+ (log (/ -1 m)) (log (/ -1 K))))) (* m K))) (sqrt (- (+ (log (/ -1 m)) (log (/ -1 K)))))) |
| 274.0ms | (- (/ 1 (* m K)) (+ (log (/ -1 m)) (log (/ -1 K)))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0.6b
0% (0.1b remaining)
Error of 1.3b against oracle of 1.2b and baseline of 1.3b