Details

Time bar (total: 7.0s)

analyze1.2s (17.7%)

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
12.5%87.4%0.1%7
18.7%81.1%0.1%8
26.5%72.9%0.5%9
38.2%60.7%1.1%10
41.7%54.9%3.4%11
47.6%47.4%5%12
53.4%39.4%7.2%13
54.9%34.5%10.6%14
Compiler

Compiled 20 to 15 computations (25% saved)

sample2.9s (40.9%)

Symmetry

(sort c s)

Results
1.1s6315×body128valid
657.0ms980×body1024valid
336.0ms1967×body128invalid
266.0ms611×body512valid
140.0ms210×body1024invalid
121.0ms268×body512invalid
107.0ms350×body256valid
45.0ms151×body256invalid
Compiler

Compiled 59 to 44 computations (25.4% saved)

simplify64.0ms (0.9%)

Algorithm
egg-herbie
Rules
750×unswap-sqr_binary64
516×*-commutative_binary64
376×associate-/l/_binary64
309×sqr-pow_binary64
243×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01324
13024
27224
325424
4114524
5212824
6332024
7339724
8349424
9362824
10381324
11406024
12440124
13479624
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
1.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
29.5b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x)))
1.4b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
Compiler

Compiled 111 to 69 computations (37.8% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s)))
0.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
4.8b
(*.f64 x (*.f64 c s))

series165.0ms (2.4%)

Counts
3 → 108
Calls

3 calls:

121.0ms
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
33.0ms
(*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s)))
10.0ms
(*.f64 x (*.f64 c s))

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
699×log-prod_binary64
214×expm1-udef_binary64
214×log1p-udef_binary64
205×prod-diff_binary64
193×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01135
123635
2323735
Stop Event
node limit
Counts
3 → 84
Calls

3 calls:

53.0ms
(*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s)))
53.0ms
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
53.0ms
(*.f64 x (*.f64 c s))

simplify46.0ms (0.7%)

Algorithm
egg-herbie
Rules
866×associate-/l*_binary64
440×associate-/l/_binary64
361×cancel-sign-sub-inv_binary64
334×unswap-sqr_binary64
271×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0401776
11111774
23291774
316761769
Stop Event
node limit
Counts
192 → 101

prune134.0ms (1.9%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New11113124
Fresh101
Picked101
Done000
Total11313126
Error
0.7b
Counts
126 → 13
Alt Table
StatusErrorProgram
1.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))) 3)
1.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
19.2b
(*.f64 (/.f64 1 (*.f64 (*.f64 c s) (*.f64 x x))) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 c s)))
1.6b
(-.f64 (/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)) (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)))
31.0b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (pow.f64 (sqrt.f64 (*.f64 x (*.f64 c s))) 2)))
1.8b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 c s))) 3)))
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
29.7b
(*.f64 (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) x) (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
4.2b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 s (*.f64 c x))))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
1.4b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2))))
2.2b
(/.f64 (cos.f64 (*.f64 2 x)) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 c s))) 2) 3))
22.4b
(/.f64 (cos.f64 (*.f64 2 x)) (pow.f64 (pow.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2) 3) 1/3))
Compiler

Compiled 2977 to 1354 computations (54.5% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
0.3b
(pow.f64 (*.f64 x (*.f64 c s)) -2)
4.8b
(*.f64 x (*.f64 c s))

series158.0ms (2.3%)

Counts
2 → 72
Calls

2 calls:

123.0ms
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
35.0ms
(pow.f64 (*.f64 x (*.f64 c s)) -2)

rewrite43.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
505×prod-diff_binary64
208×expm1-udef_binary64
208×log1p-udef_binary64
147×fma-def_binary64
124×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
124128
2317628
Stop Event
node limit
Counts
2 → 34
Calls

2 calls:

43.0ms
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
43.0ms
(pow.f64 (*.f64 x (*.f64 c s)) -2)

simplify44.0ms (0.6%)

Algorithm
egg-herbie
Rules
877×associate-/l*_binary64
437×associate-/l/_binary64
361×cancel-sign-sub-inv_binary64
355×unswap-sqr_binary64
271×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0361632
1991630
23231630
318261625
Stop Event
node limit
Counts
106 → 46

prune121.0ms (1.7%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New63669
Fresh4812
Picked101
Done000
Total681482
Error
0.0b
Counts
82 → 14
Alt Table
StatusErrorProgram
32.3b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 (*.f64 s (*.f64 x c))) -2) (pow.f64 (sqrt.f64 (*.f64 s (*.f64 x c))) -2)))
29.7b
(*.f64 (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) x) (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
2.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 c (*.f64 s x)) -2))
22.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 x -2) (pow.f64 (*.f64 c s) -2)))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 s (*.f64 c x)) -2))
1.4b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2))))
31.0b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (pow.f64 (sqrt.f64 (*.f64 x (*.f64 c s))) 2)))
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
21.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 x c) -2) (pow.f64 s -2)))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
2.2b
(/.f64 (cos.f64 (*.f64 2 x)) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 c s))) 2) 3))
1.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))) 3)
1.6b
(-.f64 (/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)) (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)))
Compiler

Compiled 1787 to 891 computations (50.1% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2))))
0.2b
(pow.f64 (*.f64 x (*.f64 c s)) 2)
0.3b
(/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2)))
4.8b
(*.f64 x (*.f64 c s))

series267.0ms (3.8%)

Counts
3 → 108
Calls

3 calls:

126.0ms
(/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2)))
123.0ms
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2))))
17.0ms
(pow.f64 (*.f64 x (*.f64 c s)) 2)

rewrite60.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
520×prod-diff_binary64
155×add-sqr-sqrt_binary64
148×log1p-expm1-u_binary64
148×expm1-log1p-u_binary64
145×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01547
132341
2430441
Stop Event
node limit
Counts
3 → 101
Calls

3 calls:

58.0ms
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2))))
58.0ms
(pow.f64 (*.f64 x (*.f64 c s)) 2)
58.0ms
(/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2)))

simplify55.0ms (0.8%)

Algorithm
egg-herbie
Rules
877×associate-/l*_binary64
531×associate-/l/_binary64
361×cancel-sign-sub-inv_binary64
355×unswap-sqr_binary64
283×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0392208
11062206
23482206
319522201
Stop Event
node limit
Counts
209 → 118

prune207.0ms (3%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1374141
Fresh6713
Picked101
Done000
Total14411155
Error
0.0b
Counts
155 → 11
Alt Table
StatusErrorProgram
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
7.5b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (*.f64 (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x c)) s))))
29.7b
(*.f64 (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) x) (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
2.3b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 c (*.f64 s x)) 2))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
1.8b
(pow.f64 (cbrt.f64 (/.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) 2))) 3)
5.0b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (*.f64 x (*.f64 (*.f64 c s) (*.f64 x (*.f64 c s)))))))
2.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 c (*.f64 s x)) -2))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 s (*.f64 c x)) -2))
1.6b
(-.f64 (/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)) (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)))
Compiler

Compiled 3267 to 1468 computations (55.1% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
0.3b
(pow.f64 (cos.f64 x) 2)
3.6b
(/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
4.8b
(*.f64 x (*.f64 c s))

series267.0ms (3.8%)

Counts
3 → 76
Calls

3 calls:

134.0ms
(/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
129.0ms
(/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
3.0ms
(pow.f64 (cos.f64 x) 2)

rewrite62.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
246×expm1-udef_binary64
246×log1p-udef_binary64
232×log-pow_binary64
140×add-sqr-sqrt_binary64
136×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01442
129536
2373536
Stop Event
node limit
Counts
3 → 92
Calls

3 calls:

60.0ms
(/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
60.0ms
(pow.f64 (cos.f64 x) 2)
60.0ms
(/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))

simplify56.0ms (0.8%)

Algorithm
egg-herbie
Rules
482×unswap-sqr_binary64
473×times-frac_binary64
454×fma-neg_binary64
397×associate-/r*_binary64
217×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0611929
11881929
26341925
338101925
Stop Event
node limit
Counts
168 → 121

prune231.0ms (3.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1670167
Fresh01010
Picked011
Done000
Total16711178
Error
0.0b
Counts
178 → 11
Alt Table
StatusErrorProgram
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
7.5b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (*.f64 (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x c)) s))))
29.7b
(*.f64 (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) x) (/.f64 (sqrt.f64 (cos.f64 (+.f64 x x))) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
2.3b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 c (*.f64 s x)) 2))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
1.8b
(pow.f64 (cbrt.f64 (/.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) 2))) 3)
5.0b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (*.f64 x (*.f64 (*.f64 c s) (*.f64 x (*.f64 c s)))))))
2.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 c (*.f64 s x)) -2))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 s (*.f64 c x)) -2))
1.6b
(-.f64 (/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)) (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2)))
Compiler

Compiled 5294 to 2490 computations (53% saved)

regimes641.0ms (9.2%)

Accuracy

Total 2.4b remaining (97.7%)

Threshold costs 0b (0%)

Counts
104 → 1
Compiler

Compiled 12748 to 8658 computations (32.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01118
11418
Stop Event
saturated

end163.0ms (2.3%)

Remove

(sort c s)

Compiler

Compiled 286 to 183 computations (36% saved)

Profiling

Loading profile data...