Details

Time bar (total: 9.4s)

analyze3.1s (32.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
12.5%87.3%0.2%9
12.5%87.3%0.2%10
18.7%81.1%0.2%11
18.7%81.1%0.2%12
18.7%81.1%0.2%13
20.5%79.3%0.2%14
Compiler

Compiled 35 to 24 computations (31.4% saved)

sample2.1s (22.2%)

Symmetry

(sort m n)

Results
1.7s8095×body128valid
93.0ms91×body1024invalid
58.0ms292×body128invalid
57.0ms68×body1024valid
42.0ms79×body512invalid
35.0ms66×body512valid
20.0ms51×body256invalid
15.0ms13×body2048invalid
11.0ms27×body256valid
Compiler

Compiled 104 to 71 computations (31.7% saved)

simplify58.0ms (0.6%)

Algorithm
egg-herbie
Rules
691×exp-prod_binary64
507×exp-sum_binary64
446×fma-neg_binary64
375×associate-*l*_binary64
251×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02245
15845
212943
338443
4126643
5402343
6494543
7501943

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
12.8b
Counts
3 → 1
Alt Table
StatusErrorProgram
12.8b
(*.f64 (cos.f64 (-.f64 (/.f64 (*.f64 K (+.f64 m n)) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
Compiler

Compiled 128 to 80 computations (37.5% saved)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)
0.0b
(*.f64 K (+.f64 m n))
0.0b
(pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2)
30.0b
(cos.f64 (-.f64 (/.f64 (*.f64 K (+.f64 m n)) 2) M))

series90.0ms (1%)

Counts
4 → 168
Calls

4 calls:

42.0ms
(+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)
26.0ms
(cos.f64 (-.f64 (/.f64 (*.f64 K (+.f64 m n)) 2) M))
15.0ms
(pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2)
7.0ms
(*.f64 K (+.f64 m n))

rewrite40.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
36×add-sqr-sqrt_binary64
32×*-un-lft-identity_binary64
25×cos-sum_binary64
24×add-cube-cbrt_binary64
21×prod-diff_binary64
Counts
4 → 108
Calls

4 calls:

11.0ms
(+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)
8.0ms
(cos.f64 (-.f64 (/.f64 (*.f64 K (+.f64 m n)) 2) M))
7.0ms
(pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2)
5.0ms
(*.f64 K (+.f64 m n))

simplify142.0ms (1.5%)

Algorithm
egg-herbie
Rules
326×associate-*r*_binary64
293×fma-neg_binary64
288×associate-*l*_binary64
269×fma-def_binary64
238×distribute-rgt-neg-in_binary64
Counts
276 → 235
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04617167
19835956
232645823
349335823

prune388.0ms (4.1%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2305235
Fresh000
Picked101
Done000
Total2315236
Error
0.9b
Counts
236 → 5
Alt Table
StatusErrorProgram
43.5b
(*.f64 (cos.f64 (-.f64 (/.f64 (/.f64 (*.f64 K (+.f64 (pow.f64 m 3) (pow.f64 n 3))) (+.f64 (*.f64 m m) (-.f64 (*.f64 n n) (*.f64 m n)))) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.8b
(*.f64 (cos.f64 (-.f64 (/.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 K (+.f64 m n))) (cbrt.f64 (*.f64 K (+.f64 m n)))) (cbrt.f64 (*.f64 K (+.f64 m n)))) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.8b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 (+.f64 n m) (cbrt.f64 2)) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 (+.f64 n m) (cbrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.7b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
1.1b
(*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
Compiler

Compiled 10675 to 5135 computations (51.9% saved)

localize23.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 M)
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)
0.0b
(pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2)

series2.0ms (0%)

Counts
1 → 4
Calls

1 calls:

2.0ms
(cos.f64 M)

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
1 → 9
Calls

1 calls:

1.0ms
(cos.f64 M)

simplify67.0ms (0.7%)

Algorithm
egg-herbie
Rules
1004×fma-neg_binary64
777×cancel-sign-sub-inv_binary64
308×distribute-rgt-neg-in_binary64
286×unswap-sqr_binary64
275×unsub-neg_binary64
Counts
13 → 17
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030116
164105
2138101
336899
4125299
5398699
6470299
7505799

prune202.0ms (2.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1300130
Fresh044
Picked011
Done000
Total1305135
Error
0.9b
Counts
135 → 5
Alt Table
StatusErrorProgram
43.5b
(*.f64 (cos.f64 (-.f64 (/.f64 (/.f64 (*.f64 K (+.f64 (pow.f64 m 3) (pow.f64 n 3))) (+.f64 (*.f64 m m) (-.f64 (*.f64 n n) (*.f64 m n)))) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.8b
(*.f64 (cos.f64 (-.f64 (/.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 K (+.f64 m n))) (cbrt.f64 (*.f64 K (+.f64 m n)))) (cbrt.f64 (*.f64 K (+.f64 m n)))) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.8b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 (+.f64 n m) (cbrt.f64 2)) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 (+.f64 n m) (cbrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.7b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
1.1b
(*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
Compiler

Compiled 4092 to 2103 computations (48.6% saved)

localize29.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 K (sqrt.f64 2))
0.4b
(/.f64 (+.f64 n m) (sqrt.f64 2))
30.0b
(cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))
30.3b
(sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))

series103.0ms (1.1%)

Counts
4 → 64
Calls

4 calls:

44.0ms
(cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))
42.0ms
(sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))
11.0ms
(/.f64 (+.f64 n m) (sqrt.f64 2))
6.0ms
(/.f64 K (sqrt.f64 2))

rewrite16.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
50×*-un-lft-identity_binary64
42×times-frac_binary64
36×add-sqr-sqrt_binary64
36×add-cube-cbrt_binary64
27×sqrt-prod_binary64
Counts
4 → 111
Calls

4 calls:

5.0ms
(/.f64 (+.f64 n m) (sqrt.f64 2))
3.0ms
(/.f64 K (sqrt.f64 2))
1.0ms
(sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))
1.0ms
(cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))

simplify110.0ms (1.2%)

Algorithm
egg-herbie
Rules
501×fma-def_binary64
294×associate-*r*_binary64
274×cancel-sign-sub-inv_binary64
211×associate-*l*_binary64
196×sub-neg_binary64
Counts
175 → 216
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03644556
19704388
232844239
351154239

prune746.0ms (7.9%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New3263329
Fresh213
Picked101
Done011
Total3295334
Error
0.9b
Counts
334 → 5
Alt Table
StatusErrorProgram
43.5b
(*.f64 (cos.f64 (-.f64 (/.f64 (/.f64 (*.f64 K (+.f64 (pow.f64 m 3) (pow.f64 n 3))) (+.f64 (*.f64 m m) (-.f64 (*.f64 n n) (*.f64 m n)))) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.7b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (expm1.f64 (log1p.f64 (cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
29.3b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (-.f64 (cos.f64 (-.f64 (/.f64 (*.f64 K m) (pow.f64 (sqrt.f64 2) 2)) M)) (+.f64 (/.f64 (*.f64 (sin.f64 (-.f64 (/.f64 (*.f64 K m) (pow.f64 (sqrt.f64 2) 2)) M)) (*.f64 n K)) (pow.f64 (sqrt.f64 2) 2)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 n 2) (*.f64 (pow.f64 K 2) (cos.f64 (-.f64 (/.f64 (*.f64 K m) (pow.f64 (sqrt.f64 2) 2)) M)))) (pow.f64 (sqrt.f64 2) 4)))))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
1.1b
(*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
12.7b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n))) (/.f64 (cbrt.f64 (+.f64 m n)) (sqrt.f64 2))) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
Compiler

Compiled 22157 to 13607 computations (38.6% saved)

localize35.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n)))
0.6b
(cbrt.f64 (+.f64 m n))
30.1b
(cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n))) (/.f64 (cbrt.f64 (+.f64 m n)) (sqrt.f64 2))) (neg.f64 M)))
30.3b
(sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M)))

series99.0ms (1.1%)

Counts
3 → 96
Calls

3 calls:

47.0ms
(cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n))) (/.f64 (cbrt.f64 (+.f64 m n)) (sqrt.f64 2))) (neg.f64 M)))
28.0ms
(*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n)))
23.0ms
(cbrt.f64 (+.f64 m n))

rewrite17.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
28×cbrt-prod_binary64
28×*-un-lft-identity_binary64
20×add-sqr-sqrt_binary64
14×cbrt-div_binary64
12×add-cube-cbrt_binary64
Counts
3 → 81
Calls

3 calls:

8.0ms
(*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n)))
2.0ms
(cbrt.f64 (+.f64 m n))
1.0ms
(cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n))) (/.f64 (cbrt.f64 (+.f64 m n)) (sqrt.f64 2))) (neg.f64 M)))

simplify113.0ms (1.2%)

Algorithm
egg-herbie
Rules
830×fma-def_binary64
415×cancel-sign-sub-inv_binary64
313×associate-*r*_binary64
221×associate-*l*_binary64
212×unswap-sqr_binary64
Counts
177 → 186
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03485245
19394782
232584455
351474455

prune659.0ms (7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New3352337
Fresh123
Picked101
Done011
Total3375342
Error
0.9b
Counts
342 → 5
Alt Table
StatusErrorProgram
43.5b
(*.f64 (cos.f64 (-.f64 (/.f64 (/.f64 (*.f64 K (+.f64 (pow.f64 m 3) (pow.f64 n 3))) (+.f64 (*.f64 m m) (-.f64 (*.f64 n n) (*.f64 m n)))) 2) M)) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
38.2b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n))) (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 n 2)) 1/3) m)) (pow.f64 n 1/3)) (sqrt.f64 2))) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
25.2b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (cos.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (+.f64 m n)) (cbrt.f64 (+.f64 m n))) (/.f64 (pow.f64 n 1/3) (sqrt.f64 2))) (neg.f64 M)))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
29.3b
(*.f64 (-.f64 (*.f64 (cos.f64 0) (-.f64 (cos.f64 (-.f64 (/.f64 (*.f64 K m) (pow.f64 (sqrt.f64 2) 2)) M)) (+.f64 (/.f64 (*.f64 (sin.f64 (-.f64 (/.f64 (*.f64 K m) (pow.f64 (sqrt.f64 2) 2)) M)) (*.f64 n K)) (pow.f64 (sqrt.f64 2) 2)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 n 2) (*.f64 (pow.f64 K 2) (cos.f64 (-.f64 (/.f64 (*.f64 K m) (pow.f64 (sqrt.f64 2) 2)) M)))) (pow.f64 (sqrt.f64 2) 4)))))) (*.f64 (sin.f64 0) (sin.f64 (fma.f64 (/.f64 K (sqrt.f64 2)) (/.f64 (+.f64 n m) (sqrt.f64 2)) (neg.f64 M))))) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
1.1b
(*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 m n)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l))))
Compiler

Compiled 27209 to 15390 computations (43.4% saved)

regimes1.1s (11.6%)

Accuracy

Total 0.1b remaining (9.2%)

Threshold costs 0.1b (9.2%)

Counts
141 → 1
Compiler

Compiled 37166 to 24930 computations (32.9% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
12×+-commutative_binary64
10×sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01833
13233
24733
36133
46933
57233
67233

end186.0ms (2%)

Remove

(sort m n)

Compiler

Compiled 429 to 309 computations (28% saved)

Profiling

Loading profile data...