Details

Time bar (total: 5.9s)

analyze371.0ms (6.3%)

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

Compiled 37 to 28 computations (24.3% saved)

sample1.9s (32.7%)

Results
1.9s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 88 to 67 computations (23.9% saved)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
11×sub-neg_binary32
+-commutative_binary32
fma-def_binary32
*-commutative_binary32
div-sub_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01117
11717
22117
32717
43517
54517
65817
77617
88817
99117
109217
Stop Event
saturated
Counts
1 → 1

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.3b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
Compiler

Compiled 42 to 33 computations (21.4% saved)

localize31.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cos.f32 (*.f32 314159265359/50000000000 u2))
0.1b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.2b
(/.f32 u1 (-.f32 1 u1))
0.3b
(*.f32 314159265359/50000000000 u2)

series36.0ms (0.6%)

Counts
4 → 36
Calls

4 calls:

31.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.0ms
(/.f32 u1 (-.f32 1 u1))
2.0ms
(cos.f32 (*.f32 314159265359/50000000000 u2))
2.0ms
(*.f32 314159265359/50000000000 u2)

rewrite61.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
532×log-prod_binary32
271×prod-diff_binary32
196×expm1-udef_binary32
195×log1p-udef_binary32
173×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
122934
2284234
Stop Event
node limit
Counts
4 → 101
Calls

4 calls:

60.0ms
(cos.f32 (*.f32 314159265359/50000000000 u2))
60.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
60.0ms
(/.f32 u1 (-.f32 1 u1))
59.0ms
(*.f32 314159265359/50000000000 u2)

simplify52.0ms (0.9%)

Algorithm
egg-herbie
Rules
557×fma-neg_binary32
324×fma-def_binary32
287×sub-neg_binary32
228×associate-/r*_binary32
178×associate-*l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0100994
1300941
2988813
34205813
Stop Event
node limit
Counts
137 → 141

prune211.0ms (3.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New12912141
Fresh000
Picked101
Done000
Total13012142
Error
0.0b
Counts
142 → 12
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.4b
(/.f32 (*.f32 (sqrt.f32 u1) (cos.f32 (*.f32 314159265359/50000000000 u2))) (sqrt.f32 (-.f32 1 u1)))
1.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
1.1b
(*.f32 (sqrt.f32 (exp.f32 (log.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.9b
(pow.f32 (sqrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) 2)
0.6b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.8b
(pow.f32 (pow.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2))) 3) 1/3)
0.9b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2))))) (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
2.5b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.8b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) 3)
Compiler

Compiled 3105 to 2418 computations (22.1% saved)

localize41.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f32 u1 (-.f32 1 u1))
0.3b
(pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)
0.3b
(pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2)
0.3b
(*.f32 314159265359/50000000000 u2)

series11.0ms (0.2%)

Counts
2 → 16
Calls

2 calls:

7.0ms
(pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)
4.0ms
(pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2)

rewrite47.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
271×prod-diff_binary32
222×expm1-udef_binary32
221×log1p-udef_binary32
192×log-pow_binary32
129×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01319
127719
2321519
Stop Event
node limit
Counts
2 → 39
Calls

2 calls:

47.0ms
(pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)
47.0ms
(pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2)

simplify33.0ms (0.6%)

Algorithm
egg-herbie
Rules
1004×fma-neg_binary32
538×times-frac_binary32
434×fma-def_binary32
383×unswap-sqr_binary32
258×associate-*l*_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058302
1148292
2352240
3967228
43137228
Stop Event
node limit
Counts
55 → 61

prune177.0ms (3%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1313134
Fresh2911
Picked101
Done000
Total13412146
Error
0.0b
Counts
146 → 12
Alt Table
StatusErrorProgram
1.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
1.1b
(*.f32 (sqrt.f32 (exp.f32 (log.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(cbrt.f32 (*.f32 (*.f32 (pow.f32 u1 3/2) (pow.f32 (/.f32 1 (-.f32 1 u1)) 3/2)) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.8b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) 3)
2.8b
(pow.f32 (pow.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2))) 3) 1/3)
0.4b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.9b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2))))) (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
19.2b
(cbrt.f32 (*.f32 (log.f32 (exp.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2))) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
2.5b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.4b
(cbrt.f32 (*.f32 (pow.f32 (pow.f32 (/.f32 (-.f32 1 u1) u1) -1) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.6b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
Compiler

Compiled 3226 to 2617 computations (18.9% saved)

localize48.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cos.f32 (*.f32 314159265359/50000000000 u2))
0.1b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))
0.3b
(*.f32 314159265359/50000000000 u2)

series63.0ms (1.1%)

Counts
2 → 32
Calls

2 calls:

61.0ms
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
3.0ms
(*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))

rewrite69.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
291×log1p-udef_binary32
168×add-sqr-sqrt_binary32
160×log1p-expm1-u_binary32
160×expm1-log1p-u_binary32
159×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01650
135050
2457150
Stop Event
node limit
Counts
2 → 67
Calls

2 calls:

68.0ms
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
68.0ms
(*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))

simplify45.0ms (0.8%)

Algorithm
egg-herbie
Rules
475×fma-neg_binary32
308×fma-def_binary32
258×sub-neg_binary32
230×associate-/r*_binary32
220×unswap-sqr_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0941208
12841088
2959914
34063913
Stop Event
node limit
Counts
99 → 102

prune181.0ms (3.1%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1461147
Fresh11011
Picked011
Done000
Total14712159
Error
0.0b
Counts
159 → 12
Alt Table
StatusErrorProgram
1.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
1.1b
(*.f32 (sqrt.f32 (exp.f32 (log.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.9b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2))))) (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
0.6b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(cbrt.f32 (*.f32 (*.f32 (pow.f32 u1 3/2) (pow.f32 (/.f32 1 (-.f32 1 u1)) 3/2)) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.8b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) 3)
2.8b
(pow.f32 (pow.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2))) 3) 1/3)
0.4b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 314159265359/50000000000 u2)) 3)))
19.2b
(cbrt.f32 (*.f32 (log.f32 (exp.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2))) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
2.5b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.4b
(cbrt.f32 (*.f32 (pow.f32 (pow.f32 (/.f32 (-.f32 1 u1) u1) -1) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
Compiler

Compiled 4483 to 3174 computations (29.2% saved)

localize44.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)
0.3b
(pow.f32 (pow.f32 (/.f32 (-.f32 1 u1) u1) -1) 3/2)
0.3b
(*.f32 314159265359/50000000000 u2)
0.3b
(pow.f32 (/.f32 (-.f32 1 u1) u1) -1)

series6.0ms (0.1%)

Counts
2 → 24
Calls

2 calls:

3.0ms
(pow.f32 (pow.f32 (/.f32 (-.f32 1 u1) u1) -1) 3/2)
2.0ms
(pow.f32 (/.f32 (-.f32 1 u1) u1) -1)

rewrite45.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
910×log1p-expm1-u_binary32
910×expm1-log1p-u_binary32
194×prod-diff_binary32
93×add-sqr-sqrt_binary32
90×add-cbrt-cube_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0920
120217
2251117
Stop Event
node limit
Counts
2 → 68
Calls

2 calls:

44.0ms
(pow.f32 (pow.f32 (/.f32 (-.f32 1 u1) u1) -1) 3/2)
44.0ms
(pow.f32 (/.f32 (-.f32 1 u1) u1) -1)

simplify29.0ms (0.5%)

Algorithm
egg-herbie
Rules
682×times-frac_binary32
535×fma-def_binary32
229×unswap-sqr_binary32
198×fma-neg_binary32
157×sub-neg_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058396
1154372
2425320
31162307
43054307
Stop Event
node limit
Counts
92 → 97

prune198.0ms (3.4%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1392141
Fresh4610
Picked011
Done011
Total14310153
Error
0.0b
Counts
153 → 10
Alt Table
StatusErrorProgram
1.2b
(cbrt.f32 (*.f32 (pow.f32 (exp.f32 (-.f32 (log.f32 u1) (log1p.f32 (neg.f32 u1)))) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.4b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 314159265359/50000000000 u2)) 3)))
1.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
0.3b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.9b
(*.f32 (sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 (pow.f32 u1 3))) (+.f32 1 (fma.f32 u1 u1 u1)))) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2))))) (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
0.6b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 (/.f32 (sqrt.f32 u1) (sqrt.f32 (-.f32 1 u1))) (/.f32 (sqrt.f32 u1) (sqrt.f32 (-.f32 1 u1)))) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
19.2b
(cbrt.f32 (*.f32 (log.f32 (exp.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2))) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.4b
(cbrt.f32 (*.f32 (pow.f32 (pow.f32 (/.f32 (-.f32 1 u1) u1) -1) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.8b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) 3)
Compiler

Compiled 3171 to 2629 computations (17.1% saved)

regimes1.9s (32.9%)

Accuracy

Total 0.2b remaining (75.2%)

Threshold costs 0.2b (75.2%)

Counts
208 → 1
Compiler

Compiled 34918 to 28850 computations (17.4% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01217
11917
22317
32517
42617
Stop Event
saturated

end205.0ms (3.5%)

Compiler

Compiled 256 to 208 computations (18.8% saved)

Profiling

Loading profile data...