Details

Time bar (total: 5.1s)

analyze110.0ms (2.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.2%99.8%0
0%0.2%99.8%1
0%0.2%99.8%2
0.1%0.1%99.8%3
0.1%0.1%99.8%4
0.1%0%99.8%5
0.1%0%99.8%6
0.1%0%99.8%7
0.1%0%99.8%8
0.2%0%99.8%9
0.2%0%99.8%10
0.2%0%99.8%11
0.2%0%99.8%12
0.2%0%99.8%13
0.2%0%99.8%14
Compiler

Compiled 26 to 19 computations (26.9% saved)

sample2.2s (43.6%)

Results
1.9s8256×body128valid
Compiler

Compiled 63 to 46 computations (27% saved)

simplify34.0ms (0.7%)

Algorithm
egg-herbie
Rules
566×fma-def_binary32
230×fma-neg_binary32
88×cancel-sign-sub-inv_binary32
79×distribute-rgt-in_binary32
67×distribute-lft-in_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0914
12213
24313
37713
49313
513113
617013
721713
834013
947113
1048113
1155713
1256913
1367613
1469913
1570013
1664513

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 39 to 26 computations (33.3% saved)

localize26.0ms (0.5%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

series217.0ms (4.3%)

Counts
1 → 24
Calls

1 calls:

216.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

rewrite40.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
522×expm1-log1p-u_binary32
521×log1p-expm1-u_binary32
447×unpow-prod-down_binary32
318×log-prod_binary32
153×pow2_binary32
Counts
1 → 21
Calls

1 calls:

40.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
11639
214039
352659

simplify69.0ms (1.4%)

Algorithm
egg-herbie
Rules
352×times-frac_binary32
297×fma-def_binary32
250×associate-/l*_binary32
219×distribute-rgt-out_binary32
205×unswap-sqr_binary32
Counts
45 → 47
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
059530
1171498
2501448
31692434
44528432
54729432
65008432

prune37.0ms (0.7%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New41647
Fresh000
Picked011
Done000
Total41748
Error
0.1b
Counts
48 → 7
Alt Table
StatusErrorProgram
8.8b
(pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 u0))) 3)
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.2b
(*.f32 (*.f32 alpha alpha) (+.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))))
2.3b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
4.2b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
9.4b
(exp.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 u0))))
8.7b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
Compiler

Compiled 890 to 548 computations (38.4% saved)

localize48.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))
0.3b
(*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2))
0.3b
(*.f32 (*.f32 alpha alpha) (+.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))))
0.4b
(*.f32 u0 1/3)

series43.0ms (0.8%)

Counts
4 → 60
Calls

4 calls:

35.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))))
3.0ms
(*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))
2.0ms
(*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2))
2.0ms
(*.f32 u0 1/3)

rewrite83.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
300×expm1-udef_binary32
300×log1p-udef_binary32
171×add-sqr-sqrt_binary32
170×log1p-expm1-u_binary32
170×expm1-log1p-u_binary32
Counts
4 → 90
Calls

4 calls:

75.0ms
(*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))
75.0ms
(*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2))
75.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 u0 (*.f32 u0 (+.f32 (*.f32 u0 1/3) 1/2)))))
75.0ms
(*.f32 u0 1/3)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01650
136248
2432548
3504348

simplify221.0ms (4.3%)

Algorithm
egg-herbie
Rules
777×*-commutative_binary32
694×unswap-sqr_binary32
675×sqr-pow_binary32
585×distribute-rgt-out_binary32
363×associate-+l+_binary32
Counts
150 → 117
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
040978
1107946
2302890
3992871
41631871
52341871
63073871
73059871
83150871
93263871
103405871
113242871
123420871
133726871
144024871
154436871
164912871
174908871

prune135.0ms (2.7%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1125117
Fresh505
Picked101
Done011
Total1186124
Error
0.0b
Counts
124 → 6
Alt Table
StatusErrorProgram
2.4b
(/.f32 (*.f32 (+.f32 (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) 3) (pow.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) 3)) (*.f32 alpha alpha)) (+.f32 (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) 2) (*.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) (-.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) (fma.f32 1/4 (pow.f32 u0 4) u0)))))
3.0b
(*.f32 u0 (*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 u0 (+.f32 (*.f32 1/3 u0) 1/2)) 1)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.2b
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
2.5b
(pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)))) 2)
2.2b
(sqrt.f32 (*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)))
Compiler

Compiled 3090 to 1951 computations (36.9% saved)

localize52.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))
0.3b
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
0.3b
(*.f32 u0 (fma.f32 u0 1/3 1/2))
0.3b
(*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))

series63.0ms (1.2%)

Counts
4 → 72
Calls

4 calls:

33.0ms
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
24.0ms
(*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))
3.0ms
(*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))
2.0ms
(*.f32 u0 (fma.f32 u0 1/3 1/2))

rewrite127.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
371×prod-diff_binary32
311×fma-udef_binary32
255×expm1-udef_binary32
255×log1p-udef_binary32
214×fma-neg_binary32
Counts
4 → 75
Calls

4 calls:

126.0ms
(*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))
126.0ms
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
126.0ms
(*.f32 u0 (fma.f32 u0 1/3 1/2))
126.0ms
(*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01567
131262
2334462
3489662
4490962
5483762

simplify161.0ms (3.2%)

Algorithm
egg-herbie
Rules
694×unswap-sqr_binary32
507×associate-+l+_binary32
443×associate-+r+_binary32
405×distribute-rgt-out_binary32
342×*-commutative_binary32
Counts
147 → 106
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0441326
11181247
23381166
311211164
418441164
535161164
646331164
747471164
848361164
949491164
1049201164

prune120.0ms (2.4%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1051106
Fresh044
Picked011
Done011
Total1057112
Error
0.0b
Counts
112 → 7
Alt Table
StatusErrorProgram
2.4b
(/.f32 (*.f32 (+.f32 (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) 3) (pow.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) 3)) (*.f32 alpha alpha)) (+.f32 (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) 2) (*.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) (-.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) (fma.f32 1/4 (pow.f32 u0 4) u0)))))
3.0b
(*.f32 u0 (*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 u0 (+.f32 (*.f32 1/3 u0) 1/2)) 1)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.2b
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
5.0b
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (log.f32 (pow.f32 (exp.f32 u0) (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
2.5b
(pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)))) 2)
2.2b
(sqrt.f32 (*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)))
Compiler

Compiled 2860 to 1752 computations (38.7% saved)

localize53.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)))
0.3b
(*.f32 u0 (fma.f32 u0 1/3 1/2))
0.4b
(*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2))
0.4b
(pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)

series92.0ms (1.8%)

Counts
3 → 60
Calls

3 calls:

56.0ms
(*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2))
32.0ms
(sqrt.f32 (*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)))
3.0ms
(pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)

rewrite107.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
272×expm1-udef_binary32
272×log1p-udef_binary32
246×log-pow_binary32
155×add-sqr-sqrt_binary32
155×log1p-expm1-u_binary32
Counts
3 → 65
Calls

3 calls:

105.0ms
(sqrt.f32 (*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)))
105.0ms
(*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2))
105.0ms
(pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01780
135075
2345375
3492275
4480775

simplify86.0ms (1.7%)

Algorithm
egg-herbie
Rules
828×fma-def_binary32
601×distribute-rgt-out_binary32
570×associate-*l*_binary32
437×associate-*r*_binary32
304×associate-+l+_binary32
Counts
125 → 112
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0891618
12461530
27901430
333271428
449651428
549551428

prune149.0ms (2.9%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1350135
Fresh044
Picked011
Done022
Total1357142
Error
0.0b
Counts
142 → 7
Alt Table
StatusErrorProgram
2.4b
(/.f32 (*.f32 (+.f32 (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) 3) (pow.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) 3)) (*.f32 alpha alpha)) (+.f32 (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) u0) 2) (*.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) (-.f32 (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))) (fma.f32 1/4 (pow.f32 u0 4) u0)))))
3.0b
(*.f32 u0 (*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 u0 (+.f32 (*.f32 1/3 u0) 1/2)) 1)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.2b
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
5.0b
(fma.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) u0) (*.f32 (*.f32 alpha alpha) (log.f32 (pow.f32 (exp.f32 u0) (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
2.5b
(pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)))) 2)
2.2b
(sqrt.f32 (*.f32 (pow.f32 alpha 4) (pow.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (fma.f32 1/4 (pow.f32 u0 4) u0)) 2)))
Compiler

Compiled 3392 to 2427 computations (28.4% saved)

regimes655.0ms (12.9%)

Accuracy

Total 0.2b remaining (75.3%)

Threshold costs 0.2b (75.3%)

Counts
84 → 1
Compiler

Compiled 11786 to 8168 computations (30.7% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11813
22813
33613
44113
54413
64513
74513

end127.0ms (2.5%)

Compiler

Compiled 200 to 137 computations (31.5% saved)

Profiling

Loading profile data...