


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.4
Final simplification1.4
herbie shell --seed 2019010 +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
| 193.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:
| 35.4b | (cos (- (/ (* 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) |
| 0.0b | (- (/ (* K (+ m n)) 2) M) |
| 54× | prod-diff |
| 48× | *-un-lft-identity |
| 46× | add-sqr-sqrt |
| 44× | add-cube-cbrt |
| 29× | distribute-rgt-neg-in |
| 28× | distribute-lft-neg-in |
| 27× | unpow-prod-down |
| 22× | fma-neg |
| 9× | unpow2 |
| 8× | add-log-exp |
| 5× | add-exp-log |
| 5× | pow1 |
| 4× | log1p-expm1-u |
| 4× | add-cbrt-cube |
| 4× | sub-neg |
| 4× | neg-mul-1 |
| 4× | expm1-log1p-u |
| 2× | distribute-lft-out-- |
| 2× | associate--r+ |
| 2× | flip-- |
| 2× | diff-log |
| 2× | flip3-- |
| 2× | cos-sum |
| 1× | difference-of-squares |
| 1× | associate--r- |
| 1× | div-inv |
| 1× | pow-exp |
| 1× | neg-log |
| 1× | pow-pow |
| 1× | pow-to-exp |
| 1× | cos-diff |
| 1× | neg-sub0 |
| 1× | associate--l- |
| 188.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 14.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 5.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 4.0ms | (- (/ (* K (+ m n)) 2) M) |
| 135.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 64.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 52.0ms | (cos (- (/ (* K (+ m n)) 2) M)) |
| 37.0ms | (- (/ (* K (+ m n)) 2) M) |
| 644.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 642.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 635.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 607.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 599.0ms | (fma (- (pow (sqrt (- (/ (+ m n) 2) M)) 2)) (pow (sqrt (- (/ (+ m n) 2) M)) 2) (- (* (cbrt (- l (fabs (- m n)))) (* (cbrt (- l (fabs (- m n)))) (cbrt (- l (fabs (- m n)))))))) |
4 alts after pruning (4 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) |
| 54× | prod-diff |
| 45× | *-un-lft-identity |
| 43× | add-sqr-sqrt |
| 41× | add-cube-cbrt |
| 29× | distribute-rgt-neg-in |
| 28× | distribute-lft-neg-in |
| 27× | unpow-prod-down |
| 18× | fma-neg |
| 9× | unpow2 |
| 6× | add-log-exp |
| 4× | neg-mul-1 |
| 3× | add-exp-log |
| 3× | pow1 |
| 2× | distribute-lft-out-- |
| 2× | associate--r+ |
| 2× | log1p-expm1-u |
| 2× | diff-log |
| 2× | add-cbrt-cube |
| 2× | sub-neg |
| 2× | expm1-log1p-u |
| 1× | difference-of-squares |
| 1× | associate--r- |
| 1× | flip-- |
| 1× | pow-exp |
| 1× | neg-log |
| 1× | flip3-- |
| 1× | pow-pow |
| 1× | pow-to-exp |
| 1× | neg-sub0 |
| 1× | associate--l- |
| 107.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 6.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 90.0ms | (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))) |
| 39.0ms | (pow (- (/ (+ m n) 2) M) 2) |
| 668.0ms | (* (cbrt (- (pow (- (/ (+ m n) 2) M) 2))) (cbrt (- (pow (- (/ (+ m n) 2) M) 2)))) |
| 665.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 610.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 596.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
| 592.0ms | (fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1)) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.8b
Found 4 expressions with local error:
| 45.8b | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 12.6b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 12.6b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 12.6b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 9× | cbrt-prod |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | cbrt-div |
| 4× | add-log-exp |
| 4× | log1p-expm1-u |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | pow1 |
| 4× | expm1-log1p-u |
| 3× | flip-- |
| 3× | pow1/3 |
| 3× | flip3-- |
| 27.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)) |
| 2.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 289.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 274.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 242.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 63.0ms | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 303.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)))))))))) |
| 296.0ms | (cbrt (- (pow (/ (* K (+ m n)) 2) 3) (pow M 3))) |
| 266.0ms | (cbrt (- (pow (/ (* K (+ m n)) 2) 3) (pow M 3))) |
| 265.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)))))))))) |
| 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)))))))))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 0.8b
Found 4 expressions with local error:
| 47.5b | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (* (* (cbrt (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (cbrt (- (/ (* K (+ m n)) 2) M)))) (cbrt (cbrt (- (/ (* K (+ m n)) 2) M))))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 12.6b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 12.6b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 12.6b | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 9× | cbrt-prod |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | cbrt-div |
| 4× | add-log-exp |
| 4× | log1p-expm1-u |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | pow1 |
| 4× | expm1-log1p-u |
| 3× | flip-- |
| 3× | pow1/3 |
| 3× | flip3-- |
| 288.0ms | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (* (* (cbrt (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (cbrt (- (/ (* K (+ m n)) 2) M)))) (cbrt (cbrt (- (/ (* K (+ m n)) 2) M))))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 3.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 2.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 2.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 272.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 243.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 229.0ms | (cbrt (- (/ (* K (+ m n)) 2) M)) |
| 71.0ms | (cos (* (* (cbrt (- (/ (* K (+ m n)) 2) M)) (* (* (cbrt (cbrt (- (/ (* K (+ m n)) 2) M))) (cbrt (cbrt (- (/ (* K (+ m n)) 2) M)))) (cbrt (cbrt (- (/ (* K (+ m n)) 2) M))))) (cbrt (- (/ (* K (+ m n)) 2) M)))) |
| 288.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)))))))))) |
| 277.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)))))))))) |
| 273.0ms | (cbrt (- (pow (/ (* K (+ m n)) 2) 3) (pow M 3))) |
| 253.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 (- (* (/ (* K (+ m n)) 2) (/ (* K (+ m n)) 2)) (* M M))) |
5 alts after pruning (4 fresh and 1 done)
Merged error: 0.8b
0% (0.3b remaining)
Error of 1.4b against oracle of 1.1b and baseline of 1.4b