Details

Time bar (total: 15.4s)

analyze5.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.1%99.9%0
0.1%0%99.9%1
Compiler

Compiled 33 to 24 computations (27.3% saved)

sample1.4s (9.2%)

Results
1.3s8255×body128valid
0.0msbody256valid
Compiler

Compiled 76 to 55 computations (27.6% saved)

simplify17.0ms (0.1%)

Algorithm
egg-herbie
Rules
199×fma-def_binary32
155×fma-neg_binary32
47×cancel-sign-sub-inv_binary32
34×sub-neg_binary32
26×unsub-neg_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0710
1158
2358
3638
41428
52628
63818
74348
84588
94638
104288

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))
Compiler

Compiled 34 to 22 computations (35.3% saved)

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))

series4.0ms (0%)

Counts
1 → 24
Calls

1 calls:

4.0ms
(fma.f32 ux maxCos (-.f32 1 ux))

rewrite71.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
583×log1p-expm1-u_binary32
583×expm1-log1p-u_binary32
265×log-prod_binary32
227×prod-diff_binary32
110×expm1-udef_binary32
Counts
1 → 31
Calls

1 calls:

70.0ms
(fma.f32 ux maxCos (-.f32 1 ux))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11238
214548
349608
449658
000
100

simplify23.0ms (0.1%)

Algorithm
egg-herbie
Rules
161×fma-def_binary32
149×fma-neg_binary32
26×associate--r+_binary32
26×sub-neg_binary32
24×distribute-rgt-in_binary32
Counts
55 → 39
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
014207
133171
269171
3120171
4206171
5332171
6438171
7446171
8457171
9422171

prune19.0ms (0.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New38139
Fresh000
Picked011
Done000
Total38240
Error
0.0b
Counts
40 → 2
Alt Table
StatusErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))
0.5b
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)
Compiler

Compiled 432 to 267 computations (38.2% saved)

localize21.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))
0.1b
(cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))
0.5b
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)

series7.3s (47.6%)

Counts
2 → 48
Calls

2 calls:

7.3s
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)
24.0ms
(cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))

rewrite43.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
740×log1p-expm1-u_binary32
740×expm1-log1p-u_binary32
216×prod-diff_binary32
138×log1p-udef_binary32
80×add-sqr-sqrt_binary32
Counts
2 → 51
Calls

2 calls:

42.0ms
(cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))
42.0ms
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0918
117018
2187418
3505418
000
100

simplify77.0ms (0.5%)

Algorithm
egg-herbie
Rules
929×times-frac_binary32
307×cancel-sign-sub-inv_binary32
211×sub-neg_binary32
183×fma-def_binary32
170×fma-neg_binary32
Counts
99 → 117
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02162816
17062670
225242570
350652570

prune116.0ms (0.8%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1551156
Fresh000
Picked011
Done011
Total1553158
Error
0.0b
Counts
158 → 3
Alt Table
StatusErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))
0.3b
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)))
0.5b
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)
Compiler

Compiled 4206 to 2825 computations (32.8% saved)

localize40.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))
0.2b
(pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)
0.2b
(*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3))
0.2b
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)))

series383.0ms (2.5%)

Counts
3 → 72
Calls

3 calls:

355.0ms
(*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3))
22.0ms
(pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)
5.0ms
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)))

rewrite93.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
504×log-prod_binary32
226×prod-diff_binary32
189×expm1-udef_binary32
188×log1p-udef_binary32
177×pow3_binary32
Counts
3 → 89
Calls

3 calls:

91.0ms
(pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)
91.0ms
(*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3))
91.0ms
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01376
125843
2256243
3487943
4489843
000
100

simplify203.0ms (1.3%)

Algorithm
egg-herbie
Rules
424×*-commutative_binary32
358×+-commutative_binary32
336×fma-def_binary32
308×associate-+r+_binary32
166×associate-*r/_binary32
Counts
161 → 186
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0115315291
1438314884
2506814884

prune820.0ms (5.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New3231324
Fresh000
Picked011
Done022
Total3234327
Error
0b
Counts
327 → 4
Alt Table
StatusErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))
0.7b
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (-.f32 (fma.f32 7/9 (*.f32 (*.f32 maxCos ux) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)) (fma.f32 35/3 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 5))) (fma.f32 35/3 (*.f32 (*.f32 maxCos (pow.f32 ux 3)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)) (+.f32 (pow.f32 (pow.f32 (-.f32 1 ux) 7) 1/9) (*.f32 7/9 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 7)))))))) (fma.f32 14/3 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 6))) (fma.f32 140/9 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 4))) (*.f32 14/3 (*.f32 (*.f32 maxCos (*.f32 ux ux)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)))))))
0.3b
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)))
0.5b
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)
Compiler

Compiled 31763 to 23693 computations (25.4% saved)

localize211.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f32 14/3 (*.f32 (*.f32 maxCos (*.f32 ux ux)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)))
0.5b
(pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)
1.0b
(pow.f32 (-.f32 1 ux) 7)
2.8b
(pow.f32 (-.f32 1 ux) 56)

series414.0ms (2.7%)

Counts
4 → 60
Calls

4 calls:

402.0ms
(*.f32 14/3 (*.f32 (*.f32 maxCos (*.f32 ux ux)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)))
5.0ms
(pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)
4.0ms
(pow.f32 (-.f32 1 ux) 7)
3.0ms
(pow.f32 (-.f32 1 ux) 56)

rewrite64.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
300×log1p-udef_binary32
220×prod-diff_binary32
177×add-sqr-sqrt_binary32
172×log1p-expm1-u_binary32
172×expm1-log1p-u_binary32
Counts
4 → 67
Calls

4 calls:

63.0ms
(*.f32 14/3 (*.f32 (*.f32 maxCos (*.f32 ux ux)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)))
63.0ms
(pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)
63.0ms
(pow.f32 (-.f32 1 ux) 7)
63.0ms
(pow.f32 (-.f32 1 ux) 56)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01746
137740
2411340
3474540
000
100

simplify79.0ms (0.5%)

Algorithm
egg-herbie
Rules
693×fma-neg_binary32
629×fma-def_binary32
577×cancel-sign-sub-inv_binary32
292×associate-*l*_binary32
284×distribute-lft-out_binary32
Counts
127 → 124
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01411353
14011345
210661312
328741288
449061286
550251286

prune2.1s (13.8%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New5140514
Fresh000
Picked011
Done033
Total5144518
Error
0b
Counts
518 → 4
Alt Table
StatusErrorProgram
0.0b
(fma.f32 ux maxCos (-.f32 1 ux))
0.7b
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (-.f32 (fma.f32 7/9 (*.f32 (*.f32 maxCos ux) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)) (fma.f32 35/3 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 5))) (fma.f32 35/3 (*.f32 (*.f32 maxCos (pow.f32 ux 3)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)) (+.f32 (pow.f32 (pow.f32 (-.f32 1 ux) 7) 1/9) (*.f32 7/9 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 7)))))))) (fma.f32 14/3 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 6))) (fma.f32 140/9 (*.f32 (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9) (*.f32 maxCos (pow.f32 ux 4))) (*.f32 14/3 (*.f32 (*.f32 maxCos (*.f32 ux ux)) (pow.f32 (/.f32 1 (pow.f32 (-.f32 1 ux) 56)) 1/9)))))))
0.3b
(*.f32 (cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)) (*.f32 (cbrt.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2/3)))
0.5b
(pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)
Compiler

Compiled 72296 to 56964 computations (21.2% saved)

regimes1.7s (11%)

Accuracy

Total 0.0b remaining (51.9%)

Threshold costs 0.0b (51.9%)

Counts
125 → 1
Compiler

Compiled 56685 to 45700 computations (19.4% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
sub-neg_binary32
*-commutative_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
1108
2148
3168
4178
5168

end121.0ms (0.8%)

Compiler

Compiled 208 to 161 computations (22.6% saved)

Profiling

Loading profile data...