Details

Time bar (total: 4.7s)

analyze122.0ms (2.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%50%50%2
0%50%50%3
0%50%50%4
0%50%50%5
6.2%31.2%62.5%6
9.4%28.1%62.5%7
14%17.2%68.8%8
14.8%16.4%68.8%9
17.6%9.8%72.7%10
18.1%8.8%73.1%11
19.6%5.2%75.2%12
20%4.5%75.5%13
20.7%2.7%76.6%14
Compiler

Compiled 23 to 20 computations (13% saved)

sample1.5s (32.5%)

Results
1.2s8256×body128valid
83.0ms565×body128invalid
Compiler

Compiled 68 to 59 computations (13.2% saved)

simplify103.0ms (2.2%)

Algorithm
egg-herbie
Rules
1035×fma-def_binary64
742×fma-neg_binary64
189×distribute-rgt-in_binary64
173×cancel-sign-sub-inv_binary64
156×distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01524
13221
27519
316819
435819
567819
690119
7144619
8191419
9187319
10191619
11191519
12191219
13246519
14246519
15232119

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
Compiler

Compiled 109 to 91 computations (16.5% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 a 9 -3)
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
0.1b
(sqrt.f64 (fma.f64 a 9 -3))
0.3b
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))

series71.0ms (1.5%)

Counts
4 → 50
Calls

4 calls:

34.0ms
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
26.0ms
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
9.0ms
(sqrt.f64 (fma.f64 a 9 -3))
2.0ms
(fma.f64 a 9 -3)

rewrite75.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
492×prod-diff_binary64
237×log1p-udef_binary64
135×add-sqr-sqrt_binary64
132×log1p-expm1-u_binary64
132×expm1-log1p-u_binary64
Counts
4 → 127
Calls

4 calls:

73.0ms
(fma.f64 a 9 -3)
73.0ms
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
73.0ms
(sqrt.f64 (fma.f64 a 9 -3))
73.0ms
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
128640
2348140
3483740
000
100

simplify58.0ms (1.2%)

Algorithm
egg-herbie
Rules
689×fma-neg_binary64
397×associate-+l+_binary64
381×fma-def_binary64
282×associate-/l*_binary64
276×times-frac_binary64
Counts
177 → 163
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01001065
13201019
21084867
34794849
45374849

prune195.0ms (4.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1576163
Fresh101
Picked011
Done000
Total1587165
Error
0.0b
Counts
165 → 7
Alt Table
StatusErrorProgram
33.1b
(/.f64 (*.f64 (fma.f64 a a -1/9) (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (+.f64 a 1/3))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
8.3b
(*.f64 (-.f64 a 1/3) (+.f64 1 (cbrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.1b
(+.f64 a (fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3))
7.8b
(-.f64 (+.f64 a (*.f64 (*.f64 a rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3))
0.1b
(+.f64 (*.f64 a (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
Compiler

Compiled 3664 to 2850 computations (22.2% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 a 9 -3)
0.1b
(fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)
0.1b
(*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1))
0.2b
(pow.f64 (fma.f64 a 9 -3) -1/2)

series174.0ms (3.7%)

Counts
3 → 60
Calls

3 calls:

86.0ms
(*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1))
82.0ms
(fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)
5.0ms
(pow.f64 (fma.f64 a 9 -3) -1/2)

rewrite59.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
555×unpow-prod-down_binary64
428×log-prod_binary64
280×pow2_binary64
194×expm1-udef_binary64
194×log1p-udef_binary64
Counts
3 → 93
Calls

3 calls:

57.0ms
(fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)
57.0ms
(*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1))
57.0ms
(pow.f64 (fma.f64 a 9 -3) -1/2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01235
124335
2242135
3545235
000
100

simplify81.0ms (1.7%)

Algorithm
egg-herbie
Rules
912×fma-neg_binary64
380×associate-*l*_binary64
345×associate-*r*_binary64
256×times-frac_binary64
221×associate-/l*_binary64
Counts
153 → 173
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01792100
15622002
217571736
350001730
458551730

prune543.0ms (11.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3600360
Fresh055
Picked011
Done011
Total3607367
Error
0.0b
Counts
367 → 7
Alt Table
StatusErrorProgram
33.1b
(/.f64 (*.f64 (fma.f64 a a -1/9) (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (+.f64 a 1/3))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
8.3b
(*.f64 (-.f64 a 1/3) (+.f64 1 (cbrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.1b
(+.f64 a (fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3))
7.8b
(-.f64 (+.f64 a (*.f64 (*.f64 a rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3))
0.1b
(+.f64 (*.f64 a (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
Compiler

Compiled 12557 to 10150 computations (19.2% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (/.f64 1 (fma.f64 9 a -3)))
0.2b
(fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3)
0.2b
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3))
0.3b
(/.f64 1 (fma.f64 9 a -3))

series60.0ms (1.3%)

Counts
4 → 36
Calls

4 calls:

34.0ms
(fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3)
13.0ms
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3))
11.0ms
(sqrt.f64 (/.f64 1 (fma.f64 9 a -3)))
3.0ms
(/.f64 1 (fma.f64 9 a -3))

rewrite85.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
546×log-prod_binary64
227×expm1-udef_binary64
227×log1p-udef_binary64
209×prod-diff_binary64
194×log-pow_binary64
Counts
4 → 146
Calls

4 calls:

82.0ms
(sqrt.f64 (/.f64 1 (fma.f64 9 a -3)))
82.0ms
(fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3)
82.0ms
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3))
82.0ms
(/.f64 1 (fma.f64 9 a -3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01354
127846
2311046
3554046
000
100

simplify65.0ms (1.4%)

Algorithm
egg-herbie
Rules
782×fma-neg_binary64
635×fma-def_binary64
457×times-frac_binary64
317×associate-/l*_binary64
204×associate-*l*_binary64
Counts
182 → 188
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01321003
1414851
21335772
34839766
45464766

prune303.0ms (6.5%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1880188
Fresh044
Picked011
Done022
Total1887195
Error
0.0b
Counts
195 → 7
Alt Table
StatusErrorProgram
33.1b
(/.f64 (*.f64 (fma.f64 a a -1/9) (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (+.f64 a 1/3))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
8.3b
(*.f64 (-.f64 a 1/3) (+.f64 1 (cbrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.1b
(+.f64 a (fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3))
7.8b
(-.f64 (+.f64 a (*.f64 (*.f64 a rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3))
0.1b
(+.f64 (*.f64 a (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
Compiler

Compiled 4654 to 3609 computations (22.5% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
0.1b
(sqrt.f64 (fma.f64 a 9 -3))
0.3b
(/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand)
1.4b
(pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)

series84.0ms (1.8%)

Counts
3 → 48
Calls

3 calls:

34.0ms
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
32.0ms
(pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)
17.0ms
(/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand)

rewrite71.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
519×prod-diff_binary64
264×log1p-udef_binary64
154×add-sqr-sqrt_binary64
150×log1p-expm1-u_binary64
150×expm1-log1p-u_binary64
Counts
3 → 120
Calls

3 calls:

69.0ms
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
69.0ms
(/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand)
69.0ms
(pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01545
132839
2381139
3518039
000
100

simplify61.0ms (1.3%)

Algorithm
egg-herbie
Rules
567×sub-neg_binary64
375×times-frac_binary64
315×associate-/l*_binary64
286×fma-def_binary64
285×associate--r+_binary64
Counts
168 → 152
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0991192
12951112
21029974
34710974
45237974

prune237.0ms (5.1%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New1811182
Fresh123
Picked011
Done033
Total1827189
Error
0.0b
Counts
189 → 7
Alt Table
StatusErrorProgram
33.1b
(/.f64 (*.f64 (fma.f64 a a -1/9) (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (+.f64 a 1/3))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (pow.f64 (/.f64 (sqrt.f64 (fma.f64 a 9 -3)) rand) -1)))
7.8b
(-.f64 (+.f64 a (*.f64 (*.f64 a rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 (/.f64 1 (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 1 rand))))
0.1b
(+.f64 a (fma.f64 rand (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (+.f64 a -1/3)) -1/3))
0.1b
(+.f64 (*.f64 a (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)) (*.f64 -1/3 (fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))
0.1b
(*.f64 (-.f64 a 1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
Compiler

Compiled 4174 to 3295 computations (21.1% saved)

regimes545.0ms (11.7%)

Accuracy

Total 0.1b remaining (84.2%)

Threshold costs 0.1b (84.2%)

Counts
125 → 1
Compiler

Compiled 10034 to 7970 computations (20.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01421
12521
22721
32421

end115.0ms (2.5%)

Compiler

Compiled 177 to 142 computations (19.8% saved)

Profiling

Loading profile data...