Details

Time bar (total: 6.5s)

analyze347.0ms (5.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
75%25%0%4
75%25%0%5
75%25%0%6
78.1%21.9%0%7
78.1%21.9%0%8
78.1%21.9%0%9
78.1%21.9%0%10
78.1%21.9%0%11
78.1%21.9%0%12
78.1%21.9%0%13
78.1%21.8%0%14
Compiler

Compiled 10 to 7 computations (30% saved)

sample3.1s (47.1%)

Results
1.5s2051×body2048valid
496.0ms1161×body1024valid
467.0ms1590×body512valid
304.0ms2592×body128valid
165.0ms757×body256valid
76.0ms105×body4096valid
Compiler

Compiled 29 to 20 computations (31% saved)

simplify21.0ms (0.3%)

Algorithm
egg-herbie
Rules
327×fma-neg_binary64
210×rules-42_binary64
200×rules-40_binary64
184×rules-41_binary64
184×rules-43_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
14012
210212
328512
474412
5612

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
29.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
29.5b
(/.f64 (-.f64 1 (cos.f64 x)) (*.f64 x x))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.7b
(-.f64 1 (cos.f64 x))
14.8b
(/.f64 (-.f64 1 (cos.f64 x)) (*.f64 x x))

series6.0ms (0.1%)

Counts
2 → 16
Calls

2 calls:

4.0ms
(/.f64 (-.f64 1 (cos.f64 x)) (*.f64 x x))
2.0ms
(-.f64 1 (cos.f64 x))

rewrite51.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
657×log1p-expm1-u_binary64
657×expm1-log1p-u_binary64
301×prod-diff_binary64
118×log1p-udef_binary64
69×add-sqr-sqrt_binary64
Counts
2 → 58
Calls

2 calls:

49.0ms
(-.f64 1 (cos.f64 x))
49.0ms
(/.f64 (-.f64 1 (cos.f64 x)) (*.f64 x x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0718
116118
2189618
3501018
000
100

simplify96.0ms (1.5%)

Algorithm
egg-herbie
Rules
476×fma-neg_binary64
474×rules-21_binary64
344×rules-11_binary64
238×rules-4_binary64
203×rules-40_binary64
Counts
74 → 75
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035224
1227224
2825224
34479224
44664224
54922224
64764224

prune75.0ms (1.2%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New611475
Fresh000
Picked101
Done000
Total621476
Error
0.1b
Counts
76 → 14
Alt Table
StatusErrorProgram
29.8b
(*.f64 (cbrt.f64 (/.f64 (-.f64 1 (cos.f64 x)) (*.f64 x x))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 (cos.f64 x)) (*.f64 x x))) 2))
29.6b
(/.f64 (pow.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) 2) (*.f64 x x))
49.2b
(/.f64 (-.f64 (fma.f64 1/2 (*.f64 x x) (*.f64 1/720 (pow.f64 x 6))) (fma.f64 1/24 (pow.f64 x 4) (*.f64 1/40320 (pow.f64 x 8)))) (*.f64 x x))
29.5b
(/.f64 (pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3) (*.f64 x x))
33.9b
(-.f64 (fma.f64 1/720 (pow.f64 x 4) 1/2) (fma.f64 1/24 (*.f64 x x) (*.f64 1/40320 (pow.f64 x 6))))
29.8b
(/.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))) (*.f64 x x))
29.0b
(pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2)
29.6b
(/.f64 (log.f64 (exp.f64 (-.f64 1 (cos.f64 x)))) (*.f64 x x))
29.6b
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (*.f64 x x)))
29.7b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3) (*.f64 x x))
29.6b
(*.f64 (-.f64 1 (cos.f64 x)) (/.f64 1 (*.f64 x x)))
29.6b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) (*.f64 x x))
46.5b
(/.f64 (*.f64 (sqrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)))) (*.f64 x x))
29.7b
(/.f64 (*.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2)) (*.f64 x x))
Compiler

Compiled 1461 to 890 computations (39.1% saved)

localize6.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (-.f64 1 (cos.f64 x)))
0.2b
(pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2)
0.2b
(/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x)
1.7b
(-.f64 1 (cos.f64 x))

series25.0ms (0.4%)

Counts
3 → 28
Calls

3 calls:

12.0ms
(pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2)
8.0ms
(/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x)
5.0ms
(sqrt.f64 (-.f64 1 (cos.f64 x)))

rewrite69.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
762×log1p-expm1-u_binary64
762×expm1-log1p-u_binary64
290×prod-diff_binary64
107×egg-rr
83×add-sqr-sqrt_binary64
Counts
3 → 107
Calls

3 calls:

67.0ms
(sqrt.f64 (-.f64 1 (cos.f64 x)))
67.0ms
(pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2)
67.0ms
(/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0933
120533
2223133
3543433
000
100

simplify52.0ms (0.8%)

Algorithm
egg-herbie
Rules
853×rules-41_binary64
853×rules-42_binary64
853×rules-43_binary64
185×rules-7-rev_binary64
163×fma-neg_binary64
Counts
135 → 131
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
087570
1613532
22852532
34889532

prune165.0ms (2.5%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1617168
Fresh7613
Picked101
Done000
Total16913182
Error
0.1b
Counts
182 → 13
Alt Table
StatusErrorProgram
29.6b
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (*.f64 x x)))
33.8b
(-.f64 1/2 (*.f64 (*.f64 x x) 1/24))
29.2b
(pow.f64 (/.f64 (sqrt.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)))) x) 2)
29.5b
(/.f64 (pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3) (*.f64 x x))
29.0b
(pow.f64 (/.f64 (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) x) 2)
57.2b
(/.f64 (pow.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2) 3) (+.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 4) (+.f64 0 (*.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2) 0))))
34.4b
(-.f64 (+.f64 (*.f64 1/720 (pow.f64 x 4)) (pow.f64 (sqrt.f64 1/2) 2)) (+.f64 (*.f64 1/40320 (pow.f64 x 6)) (*.f64 1/24 (pow.f64 x 2))))
29.7b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3) (*.f64 x x))
29.6b
(*.f64 (-.f64 1 (cos.f64 x)) (/.f64 1 (*.f64 x x)))
29.6b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) (*.f64 x x))
29.8b
(/.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))) (*.f64 x x))
29.1b
(pow.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x) 2)
29.1b
(pow.f64 (*.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 1/4) (/.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 1/4) x)) 2)
Compiler

Compiled 3509 to 2582 computations (26.4% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (cos.f64 x) 2)
0.4b
(pow.f64 (cos.f64 x) 3)
0.6b
(+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))
1.5b
(-.f64 1 (pow.f64 (cos.f64 x) 3))

series20.0ms (0.3%)

Counts
4 → 24
Calls

4 calls:

7.0ms
(-.f64 1 (pow.f64 (cos.f64 x) 3))
6.0ms
(pow.f64 (cos.f64 x) 3)
4.0ms
(pow.f64 (cos.f64 x) 2)
4.0ms
(+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))

rewrite79.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
865×expm1-log1p-u_binary64
778×prod-diff_binary64
180×egg-rr
92×log1p-expm1-u_binary64
91×add-sqr-sqrt_binary64
Counts
4 → 180
Calls

4 calls:

76.0ms
(pow.f64 (cos.f64 x) 2)
76.0ms
(pow.f64 (cos.f64 x) 3)
76.0ms
(+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))
76.0ms
(-.f64 1 (pow.f64 (cos.f64 x) 3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01032
123532
2248732
3534432
000
100

simplify41.0ms (0.6%)

Algorithm
egg-herbie
Rules
774×fma-neg_binary64
568×rules-11_binary64
317×rules-40_binary64
317×rules-41_binary64
317×rules-42_binary64
Counts
204 → 210
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049311
1325311
21235311
35262311

prune316.0ms (4.9%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New2091210
Fresh01212
Picked011
Done000
Total20914223
Error
0.1b
Counts
223 → 14
Alt Table
StatusErrorProgram
29.6b
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (*.f64 x x)))
33.8b
(-.f64 1/2 (*.f64 (*.f64 x x) 1/24))
29.2b
(pow.f64 (/.f64 (sqrt.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)))) x) 2)
29.5b
(/.f64 (pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3) (*.f64 x x))
29.0b
(pow.f64 (/.f64 (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) x) 2)
57.2b
(/.f64 (pow.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2) 3) (+.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 4) (+.f64 0 (*.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2) 0))))
45.9b
(pow.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 x) 3/2) (-.f64 (/.f64 1 (pow.f64 (cos.f64 x) 3/2)) (pow.f64 (cos.f64 x) 3/2))) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) x) 2)
34.4b
(-.f64 (+.f64 (*.f64 1/720 (pow.f64 x 4)) (pow.f64 (sqrt.f64 1/2) 2)) (+.f64 (*.f64 1/40320 (pow.f64 x 6)) (*.f64 1/24 (pow.f64 x 2))))
29.7b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3) (*.f64 x x))
29.6b
(*.f64 (-.f64 1 (cos.f64 x)) (/.f64 1 (*.f64 x x)))
29.6b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) (*.f64 x x))
29.8b
(/.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))) (*.f64 x x))
29.1b
(pow.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x) 2)
29.1b
(pow.f64 (*.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 1/4) (/.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 1/4) x)) 2)
Compiler

Compiled 6681 to 4477 computations (33% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x) 2)
0.2b
(/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x)
1.4b
(-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1)
1.7b
(-.f64 1 (cos.f64 x))

series976.0ms (15.1%)

Counts
3 → 36
Calls

3 calls:

383.0ms
(pow.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x) 2)
329.0ms
(/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x)
263.0ms
(-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1)

rewrite112.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
833×fma-neg_binary64
501×prod-diff_binary64
177×log1p-udef_binary64
176×expm1-udef_binary64
144×egg-rr
Counts
3 → 144
Calls

3 calls:

109.0ms
(pow.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x) 2)
109.0ms
(/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x)
109.0ms
(-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01233
125333
2285433
3499133
4491833
000
100

simplify51.0ms (0.8%)

Algorithm
egg-herbie
Rules
853×rules-41_binary64
853×rules-42_binary64
853×rules-43_binary64
185×rules-7-rev_binary64
163×fma-neg_binary64
Counts
180 → 168
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
087634
1613596
22852596
34889596

prune175.0ms (2.7%)

Pruning

14 alts after pruning (12 fresh and 2 done)

PrunedKeptTotal
New2050205
Fresh01212
Picked011
Done011
Total20514219
Error
0.1b
Counts
219 → 14
Alt Table
StatusErrorProgram
29.6b
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (*.f64 x x)))
33.8b
(-.f64 1/2 (*.f64 (*.f64 x x) 1/24))
29.2b
(pow.f64 (/.f64 (sqrt.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)))) x) 2)
29.5b
(/.f64 (pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3) (*.f64 x x))
29.0b
(pow.f64 (/.f64 (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) x) 2)
57.2b
(/.f64 (pow.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2) 3) (+.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 4) (+.f64 0 (*.f64 (pow.f64 (/.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) x) 2) 0))))
45.9b
(pow.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 x) 3/2) (-.f64 (/.f64 1 (pow.f64 (cos.f64 x) 3/2)) (pow.f64 (cos.f64 x) 3/2))) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) x) 2)
34.4b
(-.f64 (+.f64 (*.f64 1/720 (pow.f64 x 4)) (pow.f64 (sqrt.f64 1/2) 2)) (+.f64 (*.f64 1/40320 (pow.f64 x 6)) (*.f64 1/24 (pow.f64 x 2))))
29.7b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3) (*.f64 x x))
29.6b
(*.f64 (-.f64 1 (cos.f64 x)) (/.f64 1 (*.f64 x x)))
29.6b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) (*.f64 x x))
29.8b
(/.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (-.f64 (/.f64 1 (cbrt.f64 (cos.f64 x))) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))) (*.f64 x x))
29.1b
(pow.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))))) 1) x) 2)
29.1b
(pow.f64 (*.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 1/4) (/.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 1/4) x)) 2)
Compiler

Compiled 4358 to 3238 computations (25.7% saved)

regimes402.0ms (6.2%)

Accuracy

Total 0.3b remaining (70.4%)

Threshold costs 0.3b (70.4%)

Counts
137 → 3
Compiler

Compiled 3953 to 3090 computations (21.8% saved)

bsearch49.0ms (0.8%)

Steps
ItersRangePoint
10
0.0607301028266742
47415609005.1818
0.10469358202942775
10
-103.02560211948247
-5.692120553391318e-15
-0.10095045016015487
Compiler

Compiled 2 to 1 computations (50% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03673
13873
23773

end251.0ms (3.9%)

Compiler

Compiled 367 to 268 computations (27% saved)

Profiling

Loading profile data...