Details

Time bar (total: 11.3s)

analyze2.6s (23.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
15.6%84.3%0.1%8
15.6%84.3%0.1%9
15.6%84.3%0.1%10
30.4%69.4%0.1%11
30.4%69.4%0.1%12
30.4%69.4%0.1%13
39.6%60.3%0.1%14
Compiler

Compiled 28 to 23 computations (17.9% saved)

sample4.3s (38.1%)

Results
2.2s1996×body1024valid
1.1s4731×body128valid
684.0ms985×body512valid
266.0ms541×body256valid
5.0msbody2048valid
1.0msbody128invalid
Compiler

Compiled 83 to 68 computations (18.1% saved)

simplify42.0ms (0.4%)

Algorithm
egg-herbie
Rules
667×associate-/l/_binary64
443×associate-/l*_binary64
398×times-frac_binary64
330×unswap-sqr_binary64
265×associate-*l/_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01837
13732
28932
325332
496832
5368632
6389732
7452132
8472032
9486532
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
10.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
10.1b
(*.f64 -2 (*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2)))))
Compiler

Compiled 96 to 76 computations (20.8% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 J (cos.f64 (/.f64 K 2)))
0.1b
(/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))
9.4b
(*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2))))

series129.0ms (1.1%)

Counts
3 → 96
Calls

3 calls:

81.0ms
(*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2))))
40.0ms
(/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))
8.0ms
(*.f64 J (cos.f64 (/.f64 K 2)))

rewrite59.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
237×expm1-udef_binary64
237×log1p-udef_binary64
210×log-pow_binary64
137×prod-diff_binary64
134×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01353
127153
2345553
Stop Event
node limit
Counts
3 → 73
Calls

3 calls:

58.0ms
(*.f64 J (cos.f64 (/.f64 K 2)))
58.0ms
(/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))
57.0ms
(*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2))))

simplify54.0ms (0.5%)

Algorithm
egg-herbie
Rules
767×associate-/l*_binary64
677×fma-def_binary64
293×cancel-sign-sub-inv_binary64
164×associate-/r/_binary64
140×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01812762
15422621
219562561
Stop Event
node limit
Counts
169 → 127

prune135.0ms (1.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1455150
Fresh000
Picked011
Done000
Total1456151
Error
0.0b
Counts
151 → 6
Alt Table
StatusErrorProgram
10.1b
(*.f64 -2 (*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2)))))
46.1b
(*.f64 -2 (-.f64 (*.f64 U -1/2) (*.f64 (/.f64 J (/.f64 U J)) (pow.f64 (cos.f64 (*.f64 1/2 K)) 2))))
46.0b
(*.f64 -2 (*.f64 1/2 U))
44.4b
(*.f64 -2 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))) 3)))
35.2b
(*.f64 -2 (pow.f64 (sqrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 2))
11.2b
(*.f64 -2 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3))
Compiler

Compiled 4857 to 3652 computations (24.8% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))
0.6b
(cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))))
0.8b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3)
9.4b
(*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))

series980.0ms (8.7%)

Counts
4 → 112
Calls

4 calls:

482.0ms
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3)
379.0ms
(cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))))
77.0ms
(*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))
41.0ms
(/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))

rewrite74.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
291×log1p-udef_binary64
166×add-sqr-sqrt_binary64
158×log1p-expm1-u_binary64
158×expm1-log1p-u_binary64
158×prod-diff_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01896
136596
2425496
Stop Event
node limit
Counts
4 → 126
Calls

4 calls:

71.0ms
(/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))
71.0ms
(cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))))
71.0ms
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3)
71.0ms
(*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))

simplify94.0ms (0.8%)

Algorithm
egg-herbie
Rules
316×fma-neg_binary64
313×associate-*r*_binary64
309×fma-def_binary64
247×associate-*l*_binary64
228×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03725434
111644893
245454873
Stop Event
node limit
Counts
238 → 219

prune225.0ms (2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2163219
Fresh134
Picked011
Done011
Total2178225
Error
0.0b
Counts
225 → 8
Alt Table
StatusErrorProgram
10.1b
(*.f64 -2 (*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2)))))
21.9b
(*.f64 -2 (*.f64 (sqrt.f64 (cos.f64 (*.f64 K 1/2))) (*.f64 (sqrt.f64 (cos.f64 (*.f64 K 1/2))) (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))))))
46.1b
(*.f64 -2 (-.f64 (*.f64 U -1/2) (*.f64 (/.f64 J (/.f64 U J)) (pow.f64 (cos.f64 (*.f64 1/2 K)) 2))))
46.0b
(*.f64 -2 (*.f64 1/2 U))
44.4b
(*.f64 -2 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))) 3)))
11.2b
(*.f64 -2 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3))
11.3b
(*.f64 -2 (pow.f64 (*.f64 (cbrt.f64 (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2)))))) (cbrt.f64 (cos.f64 (*.f64 K 1/2)))) 3))
10.3b
(*.f64 -2 (*.f64 (*.f64 (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 K 1/2)) 2))) (cbrt.f64 (cos.f64 (*.f64 K 1/2)))))
Compiler

Compiled 9703 to 7476 computations (23% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (cos.f64 (*.f64 K 1/2)) 2)
0.3b
(cbrt.f64 (cos.f64 (*.f64 K 1/2)))
0.3b
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 K 1/2)) 2))
9.4b
(*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2)))))

series156.0ms (1.4%)

Counts
4 → 72
Calls

4 calls:

65.0ms
(*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2)))))
52.0ms
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 K 1/2)) 2))
35.0ms
(cbrt.f64 (cos.f64 (*.f64 K 1/2)))
3.0ms
(pow.f64 (cos.f64 (*.f64 K 1/2)) 2)

rewrite63.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
285×log1p-udef_binary64
176×prod-diff_binary64
164×add-sqr-sqrt_binary64
154×add-cbrt-cube_binary64
154×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01749
134549
2428249
Stop Event
node limit
Counts
4 → 86
Calls

4 calls:

62.0ms
(pow.f64 (cos.f64 (*.f64 K 1/2)) 2)
62.0ms
(cbrt.f64 (cos.f64 (*.f64 K 1/2)))
62.0ms
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 K 1/2)) 2))
62.0ms
(*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2)))))

simplify47.0ms (0.4%)

Algorithm
egg-herbie
Rules
723×associate-/l*_binary64
541×associate-/r*_binary64
493×fma-def_binary64
275×cancel-sign-sub-inv_binary64
141×associate-/r/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01712060
14951962
217421891
Stop Event
node limit
Counts
158 → 144

prune190.0ms (1.7%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1431144
Fresh145
Picked011
Done022
Total1448152
Error
0b
Counts
152 → 8
Alt Table
StatusErrorProgram
10.1b
(*.f64 -2 (*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2)))))
21.9b
(*.f64 -2 (*.f64 (sqrt.f64 (cos.f64 (*.f64 K 1/2))) (*.f64 (sqrt.f64 (cos.f64 (*.f64 K 1/2))) (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))))))
46.1b
(*.f64 -2 (-.f64 (*.f64 U -1/2) (*.f64 (/.f64 J (/.f64 U J)) (pow.f64 (cos.f64 (*.f64 1/2 K)) 2))))
10.6b
(*.f64 -2 (*.f64 (*.f64 (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))) (-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2))) 1)) (cbrt.f64 (cos.f64 (*.f64 K 1/2)))))
46.0b
(*.f64 -2 (*.f64 1/2 U))
44.4b
(*.f64 -2 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))) 3)))
11.2b
(*.f64 -2 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3))
10.3b
(*.f64 -2 (*.f64 (*.f64 (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 K 1/2)) 2))) (cbrt.f64 (cos.f64 (*.f64 K 1/2)))))
Compiler

Compiled 6021 to 4786 computations (20.5% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2)
0.3b
(cbrt.f64 (cos.f64 (*.f64 K 1/2)))
0.3b
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2))) 1)
9.4b
(*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2)))))

series324.0ms (2.9%)

Counts
2 → 24
Calls

2 calls:

284.0ms
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2))) 1)
40.0ms
(pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2)

rewrite59.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
851×expm1-log1p-u_binary64
850×log1p-expm1-u_binary64
284×prod-diff_binary64
101×add-sqr-sqrt_binary64
96×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01222
122622
2243322
Stop Event
node limit
Counts
2 → 74
Calls

2 calls:

57.0ms
(pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2)
57.0ms
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2))) 1)

simplify39.0ms (0.3%)

Algorithm
egg-herbie
Rules
403×distribute-rgt-neg-in_binary64
345×distribute-lft-neg-in_binary64
272×*-commutative_binary64
227×sub-neg_binary64
226×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027280
174280
2165276
3500272
42077272
54495272
Stop Event
node limit
Counts
98 → 49

prune227.0ms (2%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New1620162
Fresh044
Picked011
Done033
Total1628170
Error
0b
Counts
170 → 8
Alt Table
StatusErrorProgram
10.1b
(*.f64 -2 (*.f64 (hypot.f64 1 (/.f64 U (*.f64 2 (*.f64 J (cos.f64 (/.f64 K 2)))))) (*.f64 J (cos.f64 (/.f64 K 2)))))
21.9b
(*.f64 -2 (*.f64 (sqrt.f64 (cos.f64 (*.f64 K 1/2))) (*.f64 (sqrt.f64 (cos.f64 (*.f64 K 1/2))) (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))))))
46.1b
(*.f64 -2 (-.f64 (*.f64 U -1/2) (*.f64 (/.f64 J (/.f64 U J)) (pow.f64 (cos.f64 (*.f64 1/2 K)) 2))))
10.6b
(*.f64 -2 (*.f64 (*.f64 (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))) (-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 K 1/2))) 2))) 1)) (cbrt.f64 (cos.f64 (*.f64 K 1/2)))))
46.0b
(*.f64 -2 (*.f64 1/2 U))
44.4b
(*.f64 -2 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J)))))) 3)))
11.2b
(*.f64 -2 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 J (hypot.f64 1 (/.f64 U (*.f64 (cos.f64 (*.f64 K 1/2)) (*.f64 2 J))))))) 3))
10.3b
(*.f64 -2 (*.f64 (*.f64 (*.f64 J (hypot.f64 1 (/.f64 (/.f64 U (*.f64 J 2)) (cos.f64 (*.f64 K 1/2))))) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 K 1/2)) 2))) (cbrt.f64 (cos.f64 (*.f64 K 1/2)))))
Compiler

Compiled 7253 to 5925 computations (18.3% saved)

regimes451.0ms (4%)

Accuracy

Total 8.6b remaining (99.7%)

Threshold costs 0b (0%)

Counts
43 → 3
Compiler

Compiled 6722 to 5430 computations (19.2% saved)

bsearch174.0ms (1.5%)

Steps
ItersRangePoint
9
-2.039467559549915e-265
-3.126946728156957e-272
-3.434501974673543e-266
9
-4.57114241983531e-169
-1.6115822011707699e-174
-1.6294791308598196e-174
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02583
13383
Stop Event
saturated

end786.0ms (6.9%)

Compiler

Compiled 324 to 259 computations (20.1% saved)

Profiling

Loading profile data...