Details

Time bar (total: 5.4s)

analyze371.0ms (6.9%)

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)

sample2.0s (36.2%)

Results
1.9s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 74 to 56 computations (24.3% saved)

preprocess21.0ms (0.4%)

Algorithm
egg-herbie
Rules
33×sub-neg_binary32
24×fma-def_binary32
21×+-commutative_binary32
13×*-commutative_binary32
12×div-sub_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02568
14068
25068
36668
48668
511268
614368
719068
823168
924068
1024368
033
Stop Event
saturated
saturated
Compiler

Compiled 14 to 11 computations (21.4% saved)

simplify8.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)

localize28.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series30.0ms (0.6%)

Counts
4 → 40
Calls

15 calls:

5.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u1
0
4.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u2
inf
3.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u1
inf
3.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u1
-inf
3.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u2
-inf

rewrite56.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
01137
122937
2284237
Stop Event
node limit
Counts
4 → 113

simplify35.0ms (0.6%)

Algorithm
egg-herbie
Rules
403×associate-/r*_binary32
373×fma-def_binary32
262×associate-+l+_binary32
223×associate-+r+_binary32
210×associate--r+_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01141248
13581193
212011063
Stop Event
node limit
Counts
153 → 153

prune211.0ms (3.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New14211153
Fresh000
Picked101
Done000
Total14311154
Error
0.0b
Counts
154 → 11
Alt Table
StatusErrorProgram
6.2b
(log.f32 (exp.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
1.0b
(*.f32 (pow.f32 (cbrt.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))) 3) (cos.f32 (*.f32 314159265359/50000000000 u2)))
7.1b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))))) (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.4b
(*.f32 (sqrt.f32 (pow.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3) 1/3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 2)) 1/2) (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 1/2)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.3b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.6b
(*.f32 (*.f32 (sqrt.f32 u1) (/.f32 1 (sqrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.9b
(+.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (-.f32 (*.f32 9740909103402808085817682884085781839780052161/150000000000000000000000000000000000000000000 (pow.f32 u2 4)) (fma.f32 98696044010906577398881/5000000000000000000000 (*.f32 u2 u2) (*.f32 961389193575684075633145058384385882649239799132134631991269883031841/11250000000000000000000000000000000000000000000000000000000000000000 (pow.f32 u2 6))))))
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)))
1.4b
(sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 u1)) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 2)))
Compiler

Compiled 3383 to 2647 computations (21.8% saved)

localize35.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series11.0ms (0.2%)

Counts
1 → 0
Calls

3 calls:

5.0ms
(pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)
u2
0
4.0ms
(pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)
u2
inf
2.0ms
(pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)
u2
-inf

rewrite35.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
465×log1p-expm1-u_binary32
465×expm1-log1p-u_binary32
373×unpow-prod-down_binary32
235×log-prod_binary32
136×pow2_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
074
11454
213354
Stop Event
node limit
Counts
1 → 60

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
60 → 60

prune210.0ms (3.9%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1731174
Fresh01010
Picked011
Done000
Total17312185
Error
0.0b
Counts
185 → 12
Alt Table
StatusErrorProgram
6.2b
(log.f32 (exp.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
1.0b
(*.f32 (pow.f32 (cbrt.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))) 3) (cos.f32 (*.f32 314159265359/50000000000 u2)))
7.1b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))))) (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.4b
(*.f32 (sqrt.f32 (pow.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 3) 1/3)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 2)) 1/2) (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 1/2)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.3b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.6b
(*.f32 (*.f32 (sqrt.f32 u1) (/.f32 1 (sqrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.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 (pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)))
1.9b
(+.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (-.f32 (*.f32 9740909103402808085817682884085781839780052161/150000000000000000000000000000000000000000000 (pow.f32 u2 4)) (fma.f32 98696044010906577398881/5000000000000000000000 (*.f32 u2 u2) (*.f32 961389193575684075633145058384385882649239799132134631991269883031841/11250000000000000000000000000000000000000000000000000000000000000000 (pow.f32 u2 6))))))
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)))
1.4b
(sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 u1)) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 2)))
Compiler

Compiled 3897 to 3075 computations (21.1% saved)

localize41.0ms (0.8%)

Local error

Found 4 expressions with local error:

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

series29.0ms (0.5%)

Counts
3 → 40
Calls

12 calls:

6.0ms
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u1
inf
4.0ms
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u1
0
3.0ms
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u2
-inf
3.0ms
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
u2
inf
3.0ms
(/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1)))
u1
0

rewrite60.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
327×prod-diff_binary32
215×expm1-udef_binary32
214×log1p-udef_binary32
195×log-pow_binary32
124×add-sqr-sqrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01236
125833
2330733
Stop Event
node limit
Counts
3 → 95

simplify36.0ms (0.7%)

Algorithm
egg-herbie
Rules
598×associate-/r*_binary32
369×fma-def_binary32
287×times-frac_binary32
197×associate-*l*_binary32
196×associate-*r*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01281057
13921019
21331934
Stop Event
node limit
Counts
135 → 134

prune160.0ms (3%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1482150
Fresh2810
Picked011
Done011
Total15012162
Error
0.0b
Counts
162 → 12
Alt Table
StatusErrorProgram
6.2b
(log.f32 (exp.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
1.0b
(*.f32 (pow.f32 (cbrt.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))) 3) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 2)) 1/2) (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 1/2)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.3b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.6b
(*.f32 (*.f32 (sqrt.f32 u1) (/.f32 1 (sqrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.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 (pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)))
1.4b
(*.f32 (pow.f32 (pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3) 1/3) (cos.f32 (*.f32 314159265359/50000000000 u2)))
7.1b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))))) (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.4b
(sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 u1)) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 2)))
Compiler

Compiled 3459 to 2850 computations (17.6% saved)

localize40.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series21.0ms (0.4%)

Counts
2 → 12
Calls

6 calls:

7.0ms
(pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)
u1
0
5.0ms
(pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)
u2
inf
3.0ms
(pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)
u1
inf
3.0ms
(pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3)
u1
-inf
2.0ms
(pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)
u2
-inf

rewrite47.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
271×prod-diff_binary32
216×expm1-udef_binary32
215×log1p-udef_binary32
194×log-pow_binary32
126×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01319
127619
2324219
Stop Event
node limit
Counts
2 → 62

simplify28.0ms (0.5%)

Algorithm
egg-herbie
Rules
674×associate-/r*_binary32
390×fma-neg_binary32
298×times-frac_binary32
190×associate-/l/_binary32
189×sub-neg_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
055356
1161334
2535306
32088282
Stop Event
node limit
Counts
74 → 77

prune203.0ms (3.8%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1473150
Fresh189
Picked101
Done112
Total15012162
Error
0.0b
Counts
162 → 12
Alt Table
StatusErrorProgram
6.2b
(log.f32 (exp.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
1.5b
(cbrt.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3) (exp.f32 (*.f32 3 (log.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)))))))
7.1b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1)))))) (log.f32 (sqrt.f32 (exp.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(cbrt.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3) (log.f32 (exp.f32 (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3)))))
0.4b
(cbrt.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3) (-.f32 (exp.f32 (log1p.f32 (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 3))) 1)))
0.5b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (pow.f32 (/.f32 u1 (-.f32 1 u1)) 2)) 1/2) (pow.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) 1/2)) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(*.f32 (/.f32 1 (sqrt.f32 (/.f32 (-.f32 1 u1) u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.3b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.6b
(*.f32 (*.f32 (sqrt.f32 u1) (/.f32 1 (sqrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.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 (pow.f32 (sqrt.f32 (*.f32 314159265359/50000000000 u2)) 2)))
1.4b
(*.f32 (pow.f32 (pow.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) 3) 1/3) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.4b
(sqrt.f32 (*.f32 (/.f32 u1 (-.f32 1 u1)) (pow.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) 2)))
Compiler

Compiled 3554 to 2863 computations (19.4% saved)

regimes1.5s (28.6%)

Accuracy

Total 0.3b remaining (73.7%)

Threshold costs 0.3b (73.7%)

Counts
173 → 1
Compiler

Compiled 28271 to 23029 computations (18.5% 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
01525
12125
22525
32725
42825
Stop Event
saturated

end175.0ms (3.2%)

Stop Event
fuel
Compiler

Compiled 285 to 236 computations (17.2% saved)

Profiling

Loading profile data...