Details

Time bar (total: 4.4s)

analyze104.0ms (2.3%)

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

Compiled 31 to 25 computations (19.4% saved)

sample1.5s (33.1%)

Results
1.5s8256×body128valid
Compiler

Compiled 62 to 50 computations (19.4% saved)

preprocess84.0ms (1.9%)

Algorithm
egg-herbie
Rules
1254×fma-def_binary32
520×fma-neg_binary32
232×distribute-rgt-in_binary32
207×cancel-sign-sub-inv_binary32
177×sub-neg_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02140
15238
210534
324930
443530
559430
678726
7114626
8188626
9248726
10264026
11313226
12362426
13378526
14387926
15453926
16471126
17497026
022
Stop Event
saturated
node limit
Compiler

Compiled 16 to 14 computations (12.5% saved)

simplify40.0ms (0.9%)

Algorithm
egg-herbie
Rules
764×fma-def_binary32
494×fma-neg_binary32
125×cancel-sign-sub-inv_binary32
104×distribute-rgt-in_binary32
87×sub-neg_binary32
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01420
13319
26117
313915
424215
533415
644113
763513
8101313
9127313
10165913
11192113
12235813
13267413
14270913
15271013
16271013
Stop Event
saturated
Counts
1 → 2

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
1.3b
(*.f32 (*.f32 3 s) (log.f32 (/.f32 1 (-.f32 1 (/.f32 (-.f32 u 1/4) 3/4)))))
0.7b
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
Compiler

Compiled 79 to 67 computations (15.2% saved)

localize21.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(fma.f32 u -4/3 1/3)
0.4b
(log1p.f32 (fma.f32 u -4/3 1/3))
0.4b
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))

series241.0ms (5.5%)

Counts
3 → 48
Calls

12 calls:

96.0ms
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
s
0
69.0ms
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
s
inf
68.0ms
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
s
-inf
1.0ms
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
u
inf
1.0ms
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
u
-inf

rewrite43.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
823×expm1-log1p-u_binary32
822×log1p-expm1-u_binary32
97×add-sqr-sqrt_binary32
92×add-exp-log_binary32
92×add-log-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
120225
2221625
01025
Stop Event
saturated
node limit
Counts
3 → 54

simplify38.0ms (0.8%)

Algorithm
egg-herbie
Rules
570×fma-def_binary32
504×fma-neg_binary32
470×cancel-sign-sub-inv_binary32
391×sub-neg_binary32
220×unsub-neg_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0102820
1320770
21022704
33538704
Stop Event
node limit
Counts
102 → 106

prune73.0ms (1.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New9412106
Fresh011
Picked101
Done000
Total9513108
Error
0.1b
Counts
108 → 13
Alt Table
StatusErrorProgram
9.4b
(*.f32 (expm1.f32 (log1p.f32 (log1p.f32 (fma.f32 u -4/3 1/3)))) (*.f32 s -3))
1.0b
(*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))
1.2b
(*.f32 (log1p.f32 (log.f32 (exp.f32 (fma.f32 u -4/3 1/3)))) (*.f32 s -3))
1.0b
(*.f32 (log1p.f32 (-.f32 1/3 (*.f32 4/3 u))) (*.f32 s -3))
0.8b
(*.f32 (log1p.f32 (*.f32 (cbrt.f32 (fma.f32 u -4/3 1/3)) (cbrt.f32 (pow.f32 (fma.f32 u -4/3 1/3) 2)))) (*.f32 s -3))
1.3b
(*.f32 (*.f32 3 s) (log.f32 (/.f32 1 (-.f32 1 (/.f32 (-.f32 u 1/4) 3/4)))))
0.9b
(*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (fma.f32 u -4/3 1/3))) 3) (*.f32 s -3))
9.8b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (log1p.f32 (fma.f32 u -4/3 1/3)))) 1) (*.f32 s -3))
17.3b
(cbrt.f32 (*.f32 (pow.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) 3) (pow.f32 (*.f32 s -3) 3)))
24.7b
(log.f32 (pow.f32 (+.f32 (fma.f32 u -4/3 1/3) 1) (*.f32 s -3)))
11.3b
(sqrt.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 2))
0.8b
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)
1.0b
(pow.f32 (cbrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 3)
Compiler

Compiled 1945 to 1546 computations (20.5% saved)

localize48.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f32 u -4/3 1/3)
0.4b
(log1p.f32 (fma.f32 u -4/3 1/3))
0.4b
(*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))
0.5b
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)

series28.0ms (0.6%)

Counts
1 → 12
Calls

6 calls:

6.0ms
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)
s
-inf
5.0ms
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)
s
0
5.0ms
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)
u
-inf
4.0ms
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)
s
inf
4.0ms
(pow.f32 (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 2)
u
inf

rewrite39.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
492×log-prod_binary32
281×pow2_binary32
201×expm1-udef_binary32
201×log1p-udef_binary32
198×pow1/3_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01313
126813
2266413
01318
Stop Event
saturated
node limit
Counts
1 → 39

simplify28.0ms (0.6%)

Algorithm
egg-herbie
Rules
337×distribute-lft-out_binary32
311×fma-def_binary32
234×distribute-rgt-in_binary32
201×associate-*l*_binary32
196×distribute-lft-in_binary32
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
058386
1150310
2377287
31215278
42753275
Stop Event
node limit
Counts
51 → 63

prune130.0ms (2.9%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1627169
Fresh4812
Picked101
Done000
Total16715182
Error
0.0b
Counts
182 → 15
Alt Table
StatusErrorProgram
0.8b
(pow.f32 (sqrt.f32 (*.f32 (pow.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) 1) (*.f32 s -3))) 2)
1.1b
(*.f32 (pow.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) 3) (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4))
0.8b
(*.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) (*.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)))))
1.0b
(*.f32 (log1p.f32 (-.f32 1/3 (*.f32 4/3 u))) (*.f32 s -3))
1.0b
(*.f32 (pow.f32 (cbrt.f32 (*.f32 s -3)) 2) (*.f32 (cbrt.f32 (*.f32 s -3)) (log1p.f32 (fma.f32 u -4/3 1/3))))
0.8b
(*.f32 (log1p.f32 (*.f32 (cbrt.f32 (fma.f32 u -4/3 1/3)) (cbrt.f32 (pow.f32 (fma.f32 u -4/3 1/3) 2)))) (*.f32 s -3))
1.0b
(*.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (pow.f32 (cbrt.f32 (*.f32 s -3)) 2)) (cbrt.f32 (*.f32 s -3)))
1.0b
(pow.f32 (cbrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 3)
1.2b
(*.f32 (log1p.f32 (log.f32 (exp.f32 (fma.f32 u -4/3 1/3)))) (*.f32 s -3))
1.0b
(*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))
1.1b
(pow.f32 (sqrt.f32 (*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))) 2)
1.3b
(*.f32 (*.f32 3 s) (log.f32 (/.f32 1 (-.f32 1 (/.f32 (-.f32 u 1/4) 3/4)))))
0.9b
(*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (fma.f32 u -4/3 1/3))) 3) (*.f32 s -3))
0.6b
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
9.8b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (log1p.f32 (fma.f32 u -4/3 1/3)))) 1) (*.f32 s -3))
Compiler

Compiled 3503 to 2849 computations (18.7% saved)

localize21.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
0.3b
(*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3)))
0.3b
(fma.f32 u -4/3 1/3)
0.4b
(log1p.f32 (fma.f32 u -4/3 1/3))

series238.0ms (5.4%)

Counts
2 → 36
Calls

9 calls:

93.0ms
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
s
0
69.0ms
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
s
inf
68.0ms
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
s
-inf
2.0ms
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
u
0
1.0ms
(*.f32 s (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
u
-inf

rewrite38.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
821×expm1-log1p-u_binary32
820×log1p-expm1-u_binary32
97×add-sqr-sqrt_binary32
92×add-exp-log_binary32
92×add-log-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
120223
2221123
01023
Stop Event
saturated
node limit
Counts
2 → 28

simplify36.0ms (0.8%)

Algorithm
egg-herbie
Rules
688×fma-def_binary32
348×fma-neg_binary32
258×cancel-sign-sub-inv_binary32
252×associate-*l*_binary32
241×unsub-neg_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0105799
1337739
21010672
32959656
Stop Event
node limit
Counts
64 → 76

prune103.0ms (2.3%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1374141
Fresh6814
Picked101
Done000
Total14412156
Error
0.0b
Counts
156 → 12
Alt Table
StatusErrorProgram
0.8b
(*.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) (*.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)))))
1.0b
(*.f32 (log1p.f32 (-.f32 1/3 (*.f32 4/3 u))) (*.f32 s -3))
1.0b
(*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))
0.7b
(*.f32 s (sqrt.f32 (*.f32 9 (pow.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) 2))))
1.0b
(*.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (pow.f32 (cbrt.f32 (*.f32 s -3)) 2)) (cbrt.f32 (*.f32 s -3)))
1.0b
(pow.f32 (cbrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 3)
0.6b
(*.f32 s (log1p.f32 (expm1.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))))
1.1b
(*.f32 (pow.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) 3) (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4))
1.1b
(pow.f32 (sqrt.f32 (*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))) 2)
0.9b
(*.f32 s (pow.f32 (cbrt.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3)))) 3))
0.9b
(*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (fma.f32 u -4/3 1/3))) 3) (*.f32 s -3))
1.0b
(*.f32 (log.f32 (fma.f32 u -4/3 4/3)) (*.f32 -3 s))
Compiler

Compiled 2510 to 1999 computations (20.4% saved)

localize35.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3)))
0.3b
(fma.f32 u -4/3 1/3)
0.4b
(log1p.f32 (fma.f32 u -4/3 1/3))
0.6b
(expm1.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))

series4.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

2.0ms
(expm1.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
u
-inf
2.0ms
(expm1.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
u
inf
1.0ms
(expm1.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))
u
0

rewrite33.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
751×pow1_binary32
699×expm1-log1p-u_binary32
698×log1p-expm1-u_binary32
84×add-sqr-sqrt_binary32
80×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0912
117912
2188012
0912
Stop Event
saturated
node limit
Counts
1 → 20

simplify24.0ms (0.5%)

Algorithm
egg-herbie
Rules
885×fma-def_binary32
452×times-frac_binary32
316×associate-/l*_binary32
235×associate-/r*_binary32
170×associate-*l/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
068468
1173427
2453355
31489239
Stop Event
node limit
Counts
32 → 43

prune112.0ms (2.5%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New1421143
Fresh01111
Picked011
Done000
Total14213155
Error
0.0b
Counts
155 → 13
Alt Table
StatusErrorProgram
0.8b
(*.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) (*.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) (sqrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)))))
1.0b
(*.f32 (log1p.f32 (-.f32 1/3 (*.f32 4/3 u))) (*.f32 s -3))
1.1b
(*.f32 s (log1p.f32 (/.f32 (-.f32 (pow.f32 (pow.f32 (+.f32 (fma.f32 u -4/3 1/3) 1) -3) 3) 1) (+.f32 (*.f32 (pow.f32 (+.f32 (fma.f32 u -4/3 1/3) 1) -3) (pow.f32 (+.f32 (fma.f32 u -4/3 1/3) 1) -3)) (+.f32 1 (*.f32 (pow.f32 (+.f32 (fma.f32 u -4/3 1/3) 1) -3) 1))))))
1.0b
(*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))
0.7b
(*.f32 s (sqrt.f32 (*.f32 9 (pow.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) 2))))
1.0b
(*.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (pow.f32 (cbrt.f32 (*.f32 s -3)) 2)) (cbrt.f32 (*.f32 s -3)))
1.0b
(pow.f32 (cbrt.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3))) 3)
0.6b
(*.f32 s (log1p.f32 (expm1.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3))))))
1.1b
(*.f32 (pow.f32 (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4) 3) (pow.f32 (*.f32 (log1p.f32 (fma.f32 u -4/3 1/3)) (*.f32 s -3)) 1/4))
1.1b
(pow.f32 (sqrt.f32 (*.f32 -3 (*.f32 s (log.f32 (fma.f32 u -4/3 4/3))))) 2)
0.9b
(*.f32 s (pow.f32 (cbrt.f32 (*.f32 -3 (log1p.f32 (fma.f32 u -4/3 1/3)))) 3))
0.9b
(*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (fma.f32 u -4/3 1/3))) 3) (*.f32 s -3))
1.0b
(*.f32 (log.f32 (fma.f32 u -4/3 4/3)) (*.f32 -3 s))
Compiler

Compiled 2833 to 2364 computations (16.6% saved)

regimes1.2s (27.6%)

Accuracy

Total 0.6b remaining (92.9%)

Threshold costs 0.6b (92.9%)

Counts
121 → 1
Compiler

Compiled 17314 to 14864 computations (14.2% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
*-rgt-identity_binary32
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01213
11813
Stop Event
saturated

end174.0ms (3.9%)

Stop Event
fuel
Compiler

Compiled 269 to 229 computations (14.9% saved)

Profiling

Loading profile data...