Details

Time bar (total: 6.8s)

analyze365.0ms (5.4%)

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 (28.5%)

Results
1.9s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 88 to 67 computations (23.9% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01117
11717
22117
32717
43417
54417
65417
76917
87617
97917
108017
116017

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)

localize59.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (/.f32 u1 (-.f32 1 u1)))
0.2b
(*.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)

series29.0ms (0.4%)

Counts
4 → 40
Calls

4 calls:

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

rewrite98.0ms (1.4%)

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
Counts
4 → 117
Calls

4 calls:

95.0ms
(sqrt.f32 (/.f32 u1 (-.f32 1 u1)))
95.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
95.0ms
(/.f32 u1 (-.f32 1 u1))
95.0ms
(*.f32 314159265359/50000000000 u2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01137
122737
2272437
3508437

simplify67.0ms (1%)

Algorithm
egg-herbie
Rules
598×fma-neg_binary32
404×associate-/r*_binary32
373×fma-def_binary32
270×associate-+l+_binary32
225×associate-+r+_binary32
Counts
157 → 156
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01141248
13431193
211361063
346581062
451541062

prune292.0ms (4.3%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New14610156
Fresh000
Picked101
Done000
Total14710157
Error
0.0b
Counts
157 → 10
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 (cbrt.f32 (*.f32 u1 u1)) (sqrt.f32 (-.f32 1 u1))) (/.f32 (cbrt.f32 u1) (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.6b
(*.f32 (pow.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 1/4) 2) (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.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 1 (sqrt.f32 (-.f32 1 u1))) (/.f32 u1 (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.6b
(-.f32 (+.f32 (*.f32 9740909103402808085817682884085781839780052161/150000000000000000000000000000000000000000000 (*.f32 (pow.f32 u2 4) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))) (*.f32 98696044010906577398881/5000000000000000000000 (*.f32 (pow.f32 u2 2) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.3b
(*.f32 (expm1.f32 (log1p.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.2b
(*.f32 (sqrt.f32 (+.f32 (fma.f32 u1 (fma.f32 u1 u1 u1) u1) (pow.f32 u1 4))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
Compiler

Compiled 3384 to 2637 computations (22.1% saved)

localize38.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))
0.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.2b
(/.f32 u1 (-.f32 1 u1))
0.4b
(*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2))

series25.0ms (0.4%)

Counts
3 → 44
Calls

3 calls:

21.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
3.0ms
(*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2))
2.0ms
(sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))

rewrite93.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
449×prod-diff_binary32
222×expm1-udef_binary32
221×log1p-udef_binary32
202×log-pow_binary32
132×fma-def_binary32
Counts
3 → 62
Calls

3 calls:

92.0ms
(sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))
92.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
92.0ms
(*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01338
126928
2312628
3491628
4507028

simplify103.0ms (1.5%)

Algorithm
egg-herbie
Rules
426×fma-neg_binary32
287×distribute-rgt-neg-in_binary32
285×distribute-lft-neg-in_binary32
281×distribute-neg-frac_binary32
226×fma-def_binary32
Counts
106 → 88
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
082920
1223895
2695775
32775773
44973773
54995773
64997773
74946773

prune191.0ms (2.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1451146
Fresh189
Picked101
Done000
Total1479156
Error
0.0b
Counts
156 → 9
Alt Table
StatusErrorProgram
2.2b
(*.f32 (sqrt.f32 (+.f32 (fma.f32 u1 (fma.f32 u1 u1 u1) u1) (pow.f32 u1 4))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (expm1.f32 (log1p.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 (cbrt.f32 (*.f32 u1 u1)) (sqrt.f32 (-.f32 1 u1))) (/.f32 (cbrt.f32 u1) (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.6b
(*.f32 (pow.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 1/4) 2) (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.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 1 (sqrt.f32 (-.f32 1 u1))) (/.f32 u1 (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.6b
(-.f32 (+.f32 (*.f32 9740909103402808085817682884085781839780052161/150000000000000000000000000000000000000000000 (*.f32 (pow.f32 u2 4) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))) (*.f32 98696044010906577398881/5000000000000000000000 (*.f32 (pow.f32 u2 2) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
Compiler

Compiled 3171 to 2349 computations (25.9% saved)

localize44.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f32 u1 (-.f32 1 u1))
0.3b
(log1p.f32 (/.f32 u1 (-.f32 1 u1)))
0.4b
(expm1.f32 (log1p.f32 (/.f32 u1 (-.f32 1 u1))))
0.4b
(*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2))

series6.0ms (0.1%)

Counts
2 → 24
Calls

2 calls:

3.0ms
(log1p.f32 (/.f32 u1 (-.f32 1 u1)))
2.0ms
(expm1.f32 (log1p.f32 (/.f32 u1 (-.f32 1 u1))))

rewrite97.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
642×expm1-log1p-u_binary32
641×log1p-expm1-u_binary32
340×prod-diff_binary32
256×fma-udef_binary32
111×expm1-udef_binary32
Counts
2 → 68
Calls

2 calls:

96.0ms
(log1p.f32 (/.f32 u1 (-.f32 1 u1)))
96.0ms
(expm1.f32 (log1p.f32 (/.f32 u1 (-.f32 1 u1))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0716
112716
2160216
3485816
4487316
5496816

simplify73.0ms (1.1%)

Algorithm
egg-herbie
Rules
654×fma-def_binary32
372×cancel-sign-sub-inv_binary32
360×fma-neg_binary32
348×sub-neg_binary32
328×distribute-rgt-out_binary32
Counts
92 → 100
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
051366
1155316
2417312
31104303
42719303
54163303
64816303
74951303

prune208.0ms (3.1%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1731174
Fresh088
Picked011
Done000
Total17310183
Error
0.0b
Counts
183 → 10
Alt Table
StatusErrorProgram
2.2b
(*.f32 (sqrt.f32 (+.f32 (fma.f32 u1 (fma.f32 u1 u1 u1) u1) (pow.f32 u1 4))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (expm1.f32 (log1p.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 (cbrt.f32 (*.f32 u1 u1)) (sqrt.f32 (-.f32 1 u1))) (/.f32 (cbrt.f32 u1) (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.6b
(*.f32 (pow.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 1/4) 2) (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.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 1 (sqrt.f32 (-.f32 1 u1))) (/.f32 u1 (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.6b
(-.f32 (+.f32 (*.f32 9740909103402808085817682884085781839780052161/150000000000000000000000000000000000000000000 (*.f32 (pow.f32 u2 4) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))) (*.f32 98696044010906577398881/5000000000000000000000 (*.f32 (pow.f32 u2 2) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.4b
(*.f32 (sqrt.f32 (/.f32 (cbrt.f32 (*.f32 u1 u1)) (/.f32 (-.f32 1 u1) (cbrt.f32 u1)))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
Compiler

Compiled 3999 to 2852 computations (28.7% saved)

localize43.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

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)

rewrite57.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
559×log-prod_binary32
271×prod-diff_binary32
222×expm1-udef_binary32
221×log1p-udef_binary32
192×log-pow_binary32
Counts
2 → 47
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01319
127619
2301619
3542419

simplify39.0ms (0.6%)

Algorithm
egg-herbie
Rules
1004×fma-neg_binary32
777×cancel-sign-sub-inv_binary32
538×times-frac_binary32
434×fma-def_binary32
385×unswap-sqr_binary32
Counts
63 → 69
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058302
1147292
2334240
3823228
42319228
55436228

prune220.0ms (3.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1404144
Fresh448
Picked101
Done011
Total1459154
Error
0.0b
Counts
154 → 9
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (/.f32 (cbrt.f32 (*.f32 u1 u1)) (/.f32 (-.f32 1 u1) (cbrt.f32 u1)))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.5b
(cbrt.f32 (*.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2) (log.f32 (exp.f32 (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))))
2.2b
(*.f32 (sqrt.f32 (+.f32 (fma.f32 u1 (fma.f32 u1 u1 u1) u1) (pow.f32 u1 4))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (expm1.f32 (log1p.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (sqrt.f32 (*.f32 98696044010906577398881/2500000000000000000000 (*.f32 u2 u2)))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (cbrt.f32 (/.f32 (pow.f32 u1 3) (pow.f32 (-.f32 1 u1) 3))) 3/2) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3/2) (*.f32 (pow.f32 (cbrt.f32 (cos.f32 (*.f32 314159265359/50000000000 u2))) 2) (*.f32 (cbrt.f32 (cos.f32 (*.f32 314159265359/50000000000 u2))) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 2)))))
0.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 (cbrt.f32 (*.f32 u1 u1)) (sqrt.f32 (-.f32 1 u1))) (/.f32 (cbrt.f32 u1) (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(*.f32 (sqrt.f32 (*.f32 (/.f32 1 (sqrt.f32 (-.f32 1 u1))) (/.f32 u1 (sqrt.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.4b
(cbrt.f32 (*.f32 (exp.f32 (*.f32 3/2 (log.f32 (/.f32 u1 (-.f32 1 u1))))) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
Compiler

Compiled 3172 to 2571 computations (18.9% saved)

regimes2.5s (37.2%)

Accuracy

Total 0.2b remaining (69.6%)

Threshold costs 0.2b (69.6%)

Counts
233 → 1
Compiler

Compiled 43801 to 35621 computations (18.7% saved)

simplify3.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
01526
12126
22526
32726
42826
52726

end154.0ms (2.3%)

Compiler

Compiled 243 to 194 computations (20.2% saved)

Profiling

Loading profile data...