Details

Time bar (total: 6.9s)

analyze1.2s (17.8%)

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.8s (40.9%)

Symmetry

(sort c s)

Results
1.1s6315×body128valid
660.0ms980×body1024valid
331.0ms1967×body128invalid
261.0ms611×body512valid
136.0ms210×body1024invalid
113.0ms268×body512invalid
105.0ms350×body256valid
44.0ms151×body256invalid
Compiler

Compiled 59 to 44 computations (25.4% saved)

simplify65.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
1.4b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
29.5b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x)))
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))

series158.0ms (2.3%)

Counts
3 → 108
Calls

3 calls:

119.0ms
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
30.0ms
(*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s)))
9.0ms
(*.f64 x (*.f64 c s))

rewrite56.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:

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

simplify47.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

prune176.0ms (2.5%)

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.4b
(*.f64 (neg.f64 (cos.f64 (+.f64 x x))) (/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2))))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
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)))
1.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))) 3)
19.2b
(*.f64 (/.f64 1 (*.f64 (*.f64 c s) (*.f64 x x))) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 c s)))
4.2b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 s (*.f64 c x))))
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))
1.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -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 2977 to 1354 computations (54.5% saved)

localize10.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))

series151.0ms (2.2%)

Counts
2 → 72
Calls

2 calls:

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

rewrite46.0ms (0.7%)

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:

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

simplify43.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

prune95.0ms (1.4%)

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
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
2.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 c (*.f64 s x)) -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)))
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))))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
31.0b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (pow.f64 (sqrt.f64 (*.f64 x (*.f64 c 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)))))
22.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 x -2) (pow.f64 (*.f64 c s) -2)))
1.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))) 3)
2.2b
(/.f64 (cos.f64 (*.f64 2 x)) (pow.f64 (pow.f64 (cbrt.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)))
21.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 x c) -2) (pow.f64 s -2)))
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)))
Compiler

Compiled 1787 to 891 computations (50.1% saved)

localize12.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))

series284.0ms (4.1%)

Counts
3 → 108
Calls

3 calls:

141.0ms
(/.f64 1 (neg.f64 (pow.f64 (*.f64 x (*.f64 c s)) 2)))
126.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)

rewrite57.0ms (0.8%)

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:

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

simplify49.0ms (0.7%)

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

prune205.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
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)))))
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
2.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 c (*.f64 s x)) -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)))
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))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 s (*.f64 c x)) -2))
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)))))))
1.8b
(pow.f64 (cbrt.f64 (/.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) 2))) 3)
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
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))

series246.0ms (3.6%)

Counts
3 → 76
Calls

3 calls:

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

rewrite56.0ms (0.8%)

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:

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

simplify54.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

prune254.0ms (3.7%)

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
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)))))
15.0b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
2.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 c (*.f64 s x)) -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)))
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))))
3.3b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 s (*.f64 c x)) -2))
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)))))))
1.8b
(pow.f64 (cbrt.f64 (/.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) 2))) 3)
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
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)

regimes612.0ms (8.8%)

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

end155.0ms (2.2%)

Remove

(sort c s)

Compiler

Compiled 286 to 183 computations (36% saved)

Profiling

Loading profile data...