Details

Time bar (total: 8.6s)

analyze537.0ms (6.3%)

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
50%50%0.1%5
50%50%0.1%6
50%40.6%9.5%7
50%39%11%8
50%33.6%16.5%9
50%32.4%17.7%10
50%29.5%20.6%11
50%28.8%21.3%12
50%27.3%22.8%13
50%26.9%23.1%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample6.2s (72.7%)

Results
3.0s4208×body1024valid
1.1s2035×body1024invalid
838.0ms2090×body512valid
381.0ms1034×body512invalid
292.0ms222×body2048valid
271.0ms1046×body256valid
131.0ms527×body256invalid
110.0ms746×body128invalid
108.0ms690×body128valid
1.0msbody2048invalid
Compiler

Compiled 28 to 22 computations (21.4% saved)

preprocess89.0ms (1%)

Algorithm
egg-herbie
Rules
816×fma-def_binary64
600×times-frac_binary64
456×fma-neg_binary64
228×distribute-rgt-neg-in_binary64
146×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01836
13936
29336
324736
455734
5113034
6209234
7401934
022
Stop Event
saturated
node limit
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify24.0ms (0.3%)

Algorithm
egg-herbie
Rules
454×fma-def_binary64
444×times-frac_binary64
365×distribute-rgt-neg-in_binary64
340×fma-neg_binary64
297×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01118
12318
25118
312618
428617
558117
6138417
7279317
Stop Event
node limit
Counts
1 → 2

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
41.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
41.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 50 to 35 computations (30% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
5.4b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

series17.0ms (0.2%)

Counts
2 → 32
Calls

9 calls:

4.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
im
-inf
3.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
im
inf
2.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
re
0
2.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
re
-inf
2.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
re
inf

rewrite76.0ms (0.9%)

Algorithm
egg-rewrite-iter-limit
egg-rewrite
batch-egg-rewrite
Rules
116×add-sqr-sqrt_binary64
116×add-sqr-sqrt_binary64
109×log1p-expm1-u_binary64
109×expm1-log1p-u_binary64
109×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01120
122820
2350320
0610
112710
2207710
0610
01118
122818
2349918
01118
Stop Event
iter limit
unsound
iter limit
unsound
unsound
Counts
2 → 18

simplify40.0ms (0.5%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
411×sub-neg_binary64
240×associate-*l*_binary64
225×cancel-sign-sub-inv_binary64
221×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0100734
1305716
21029666
34524666
Stop Event
node limit
Counts
50 → 46

prune38.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New44246
Fresh000
Picked011
Done000
Total44347
Error
0.1b
Counts
47 → 3
Alt Table
StatusErrorProgram
43.5b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (exp.f64 im) (*.f64 re -1/2))))
41.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.0b
(neg.f64 (+.f64 (*.f64 (sin.f64 re) im) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
Compiler

Compiled 1062 to 552 computations (48% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 re) (pow.f64 im 5))
0.1b
(*.f64 (sin.f64 re) (pow.f64 im 3))
0.1b
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
0.1b
(*.f64 (sin.f64 re) im)

series51.0ms (0.6%)

Counts
4 → 16
Calls

24 calls:

4.0ms
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
re
0
3.0ms
(*.f64 (sin.f64 re) (pow.f64 im 5))
re
-inf
3.0ms
(*.f64 (sin.f64 re) (pow.f64 im 5))
re
inf
3.0ms
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
re
-inf
3.0ms
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
re
inf

rewrite50.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
614×log-prod_binary64
225×expm1-udef_binary64
225×log1p-udef_binary64
201×log-pow_binary64
130×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01336
127136
2309936
Stop Event
node limit
Counts
4 → 70

simplify34.0ms (0.4%)

Algorithm
egg-herbie
Rules
580×associate-*l*_binary64
525×associate-*r*_binary64
413×fma-def_binary64
360×cancel-sign-sub-inv_binary64
272×unswap-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
062430
1207362
2855302
34536302
Stop Event
node limit
Counts
86 → 99

prune100.0ms (1.2%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New97299
Fresh011
Picked011
Done011
Total975102
Error
0.1b
Counts
102 → 5
Alt Table
StatusErrorProgram
2.0b
(neg.f64 (+.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
1.0b
(neg.f64 (+.f64 (*.f64 (sin.f64 re) im) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
43.5b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (exp.f64 im) (*.f64 re -1/2))))
41.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
35.3b
(neg.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 re) im) 3)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
Compiler

Compiled 3139 to 1988 computations (36.7% saved)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
0.1b
(*.f64 (sin.f64 re) im)
0.6b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3)
16.3b
(cbrt.f64 (*.f64 (sin.f64 re) im))

series135.0ms (1.6%)

Counts
2 → 16
Calls

12 calls:

25.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3)
re
-inf
24.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3)
re
inf
22.0ms
(cbrt.f64 (*.f64 (sin.f64 re) im))
re
-inf
21.0ms
(cbrt.f64 (*.f64 (sin.f64 re) im))
re
inf
18.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3)
im
-inf

rewrite37.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
596×log1p-expm1-u_binary64
596×expm1-log1p-u_binary64
319×log-prod_binary64
121×expm1-udef_binary64
121×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
115914
2167414
Stop Event
node limit
Counts
2 → 63

simplify69.0ms (0.8%)

Algorithm
egg-herbie
Rules
730×sqr-pow_binary64
370×cube-prod_binary64
362×unswap-sqr_binary64
313×pow-sqr_binary64
283×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07112
114112
219112
328112
450112
5139112
6519112
71180112
81270112
91406112
101567112
111798112
122123112
132547112
143050112
153650112
164375112
174698112
184984112
Stop Event
node limit
Counts
79 → 64

prune123.0ms (1.4%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New1094113
Fresh022
Picked011
Done022
Total1099118
Error
0.0b
Counts
118 → 9
Alt Table
StatusErrorProgram
2.0b
(neg.f64 (+.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
1.0b
(neg.f64 (+.f64 (*.f64 (sin.f64 re) im) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
43.5b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (exp.f64 im) (*.f64 re -1/2))))
41.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
36.2b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
32.7b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
2.0b
(neg.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
35.3b
(neg.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 re) im) 3)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
2.0b
(neg.f64 (+.f64 (*.f64 (cbrt.f64 (sin.f64 re)) (*.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 2))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
Compiler

Compiled 3956 to 2393 computations (39.5% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 2)
0.6b
(cbrt.f64 (sin.f64 re))
0.6b
(cbrt.f64 im)
16.3b
(cbrt.f64 (*.f64 (sin.f64 re) im))

series130.0ms (1.5%)

Counts
3 → 16
Calls

12 calls:

26.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 2)
re
inf
25.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 2)
re
-inf
20.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 2)
im
-inf
20.0ms
(cbrt.f64 (sin.f64 re))
re
-inf
19.0ms
(cbrt.f64 (sin.f64 re))
re
inf

rewrite43.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
726×log1p-expm1-u_binary64
726×expm1-log1p-u_binary64
153×expm1-udef_binary64
153×log1p-udef_binary64
89×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
119319
2210019
Stop Event
node limit
Counts
3 → 63

simplify93.0ms (1.1%)

Algorithm
egg-herbie
Rules
2215×associate-*l*_binary64
724×sqr-pow_binary64
290×pow-sqr_binary64
276×unswap-sqr_binary64
248×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011152
128152
256152
3137152
4512152
51058152
61149152
71288152
81461152
91650152
101886152
112163152
122483152
132855152
143264152
153697152
163893152
173997152
184069152
194123152
Stop Event
node limit
Counts
79 → 66

prune144.0ms (1.7%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New93194
Fresh055
Picked011
Done033
Total9310103
Error
0.0b
Counts
103 → 10
Alt Table
StatusErrorProgram
2.0b
(neg.f64 (+.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 3) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
1.0b
(neg.f64 (+.f64 (*.f64 (sin.f64 re) im) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
2.6b
(neg.f64 (+.f64 (*.f64 (cbrt.f64 (sin.f64 re)) (*.f64 (cbrt.f64 im) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (sin.f64 re) im))) 3) 2))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
43.5b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (exp.f64 im) (*.f64 re -1/2))))
41.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
36.2b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
32.7b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
2.0b
(neg.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
35.3b
(neg.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 re) im) 3)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
2.0b
(neg.f64 (+.f64 (*.f64 (cbrt.f64 (sin.f64 re)) (*.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) im)) 2))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))))
Compiler

Compiled 3798 to 2067 computations (45.6% saved)

regimes239.0ms (2.8%)

Accuracy

Total 0.8b remaining (89.1%)

Threshold costs 0.8b (89.1%)

Counts
33 → 1
Compiler

Compiled 5026 to 3517 computations (30% saved)

simplify4.0ms (0%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01836
13236
25034
38034
410434
511634
612234
712434
Stop Event
saturated

end215.0ms (2.5%)

Stop Event
fuel
Compiler

Compiled 332 to 227 computations (31.6% saved)

Profiling

Loading profile data...