Details

Time bar (total: 7.1s)

analyze1.3s (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.9s (41.2%)

Symmetry

(sort c s)

Results
1.1s6309×body128valid
674.0ms988×body1024valid
340.0ms1949×body128invalid
314.0ms647×body512valid
148.0ms225×body1024invalid
112.0ms312×body256valid
97.0ms202×body512invalid
49.0ms159×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
2.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
28.0b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x)))
2.2b
(/.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.3b
(*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s)))
0.4b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 x (*.f64 c s))))
4.2b
(*.f64 x (*.f64 c s))

series156.0ms (2.2%)

Counts
3 → 108
Calls

3 calls:

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

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

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

prune148.0ms (2.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New11311124
Fresh101
Picked101
Done000
Total11511126
Error
0.5b
Counts
126 → 11
Alt Table
StatusErrorProgram
15.2b
(*.f64 (/.f64 1 (*.f64 (*.f64 c s) (*.f64 x x))) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 c s)))
2.0b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
2.3b
(-.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)))
13.3b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 s (*.f64 c x))))
3.7b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
23.0b
(sqrt.f64 (/.f64 (pow.f64 (cos.f64 (+.f64 x x)) 2) (pow.f64 (*.f64 x (*.f64 c s)) 4)))
10.6b
(*.f64 (/.f64 1 x) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
2.1b
(*.f64 (/.f64 (cos.f64 (+.f64 x x)) (*.f64 x (*.f64 c s))) (/.f64 1 (*.f64 x (*.f64 c s))))
2.4b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))) 3)
18.0b
(*.f64 (/.f64 (cbrt.f64 (pow.f64 (cos.f64 (+.f64 x x)) 2)) (*.f64 x x)) (/.f64 (cbrt.f64 (cos.f64 (+.f64 x x))) (pow.f64 (*.f64 c s) 2)))
Compiler

Compiled 2897 to 1296 computations (55.3% 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.2b
(*.f64 x (*.f64 c s))

series150.0ms (2.1%)

Counts
2 → 72
Calls

2 calls:

118.0ms
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
32.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:

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

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

prune90.0ms (1.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New66369
Fresh3710
Picked011
Done000
Total691180
Error
0.0b
Counts
80 → 11
Alt Table
StatusErrorProgram
1.9b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 s (*.f64 x c)) -2) (cos.f64 (+.f64 x x)))) 3)
2.3b
(-.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)))
13.3b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
3.3b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 s (*.f64 c x))))
3.7b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
23.0b
(sqrt.f64 (/.f64 (pow.f64 (cos.f64 (+.f64 x x)) 2) (pow.f64 (*.f64 x (*.f64 c s)) 4)))
10.6b
(*.f64 (/.f64 1 x) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
20.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 x c) -2) (pow.f64 s -2)))
1.5b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
2.0b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
18.0b
(*.f64 (/.f64 (cbrt.f64 (pow.f64 (cos.f64 (+.f64 x x)) 2)) (*.f64 x x)) (/.f64 (cbrt.f64 (cos.f64 (+.f64 x x))) (pow.f64 (*.f64 c s) 2)))
Compiler

Compiled 1656 to 809 computations (51.1% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
0.3b
(*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c))))
0.8b
(/.f64 1 (*.f64 s (*.f64 x c)))
4.0b
(*.f64 s (*.f64 x c))

series280.0ms (3.9%)

Counts
4 → 144
Calls

4 calls:

126.0ms
(*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c))))
125.0ms
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
21.0ms
(/.f64 1 (*.f64 s (*.f64 x c)))
8.0ms
(*.f64 s (*.f64 x c))

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
517×prod-diff_binary64
211×expm1-udef_binary64
211×log1p-udef_binary64
129×add-sqr-sqrt_binary64
120×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01251
125845
2354345
Stop Event
node limit
Counts
4 → 118
Calls

4 calls:

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

simplify56.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
0422244
11172242
23502242
317082237
Stop Event
node limit
Counts
262 → 136

prune276.0ms (3.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New1943197
Fresh369
Picked011
Done011
Total19711208
Error
0b
Counts
208 → 11
Alt Table
StatusErrorProgram
23.0b
(sqrt.f64 (/.f64 (pow.f64 (cos.f64 (+.f64 x x)) 2) (pow.f64 (*.f64 x (*.f64 c s)) 4)))
3.0b
(/.f64 (*.f64 (/.f64 (cos.f64 (+.f64 x x)) (*.f64 c (*.f64 s x))) -1) (*.f64 s (neg.f64 (*.f64 x c))))
2.3b
(-.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)))
13.3b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
6.5b
(*.f64 (cos.f64 (+.f64 x x)) (/.f64 (/.f64 1 s) (*.f64 (*.f64 c (*.f64 s x)) (*.f64 x c))))
16.4b
(*.f64 (cos.f64 (+.f64 x x)) (/.f64 (/.f64 1 s) (*.f64 (*.f64 s x) (*.f64 x (*.f64 c c)))))
3.7b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
10.6b
(*.f64 (/.f64 1 x) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
20.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 x c) -2) (pow.f64 s -2)))
1.5b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
2.0b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
Compiler

Compiled 4709 to 1872 computations (60.2% saved)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (sin.f64 x) 2)
0.4b
(/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
2.3b
(/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
4.2b
(*.f64 x (*.f64 c s))

series249.0ms (3.5%)

Counts
3 → 76
Calls

3 calls:

124.0ms
(/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
122.0ms
(/.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (*.f64 x (*.f64 c s)) 2))
3.0ms
(pow.f64 (sin.f64 x) 2)

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

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

simplify55.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0641950
11961946
26601940
339451940
Stop Event
node limit
Counts
168 → 122

prune226.0ms (3.2%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New1680168
Fresh088
Picked011
Done022
Total16811179
Error
0b
Counts
179 → 11
Alt Table
StatusErrorProgram
23.0b
(sqrt.f64 (/.f64 (pow.f64 (cos.f64 (+.f64 x x)) 2) (pow.f64 (*.f64 x (*.f64 c s)) 4)))
3.0b
(/.f64 (*.f64 (/.f64 (cos.f64 (+.f64 x x)) (*.f64 c (*.f64 s x))) -1) (*.f64 s (neg.f64 (*.f64 x c))))
2.3b
(-.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)))
13.3b
(/.f64 (cos.f64 (*.f64 x 2)) (*.f64 (*.f64 s x) (*.f64 (*.f64 s x) (*.f64 c c))))
6.5b
(*.f64 (cos.f64 (+.f64 x x)) (/.f64 (/.f64 1 s) (*.f64 (*.f64 c (*.f64 s x)) (*.f64 x c))))
16.4b
(*.f64 (cos.f64 (+.f64 x x)) (/.f64 (/.f64 1 s) (*.f64 (*.f64 s x) (*.f64 x (*.f64 c c)))))
3.7b
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (*.f64 x (*.f64 c s)) (*.f64 c (*.f64 s x))))
10.6b
(*.f64 (/.f64 1 x) (/.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 c s) 2) x)))
20.7b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (pow.f64 (*.f64 x c) -2) (pow.f64 s -2)))
1.5b
(*.f64 (cos.f64 (+.f64 x x)) (*.f64 (/.f64 1 (*.f64 s (*.f64 x c))) (/.f64 1 (*.f64 s (*.f64 x c)))))
2.0b
(*.f64 (cos.f64 (+.f64 x x)) (pow.f64 (*.f64 x (*.f64 c s)) -2))
Compiler

Compiled 5337 to 2531 computations (52.6% saved)

regimes517.0ms (7.3%)

Accuracy

Total 1.9b remaining (97.7%)

Threshold costs 0b (0%)

Counts
92 → 2
Compiler

Compiled 10860 to 7184 computations (33.8% saved)

bsearch3.0ms (0%)

Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
03376
15375
26975
38475
49475
510075
610275
Stop Event
saturated

end298.0ms (4.2%)

Compiler

Compiled 430 to 270 computations (37.2% saved)

Profiling

Loading profile data...