Details

Time bar (total: 7.9s)

analyze1.6s (19.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.8%99.2%0
0%0.8%99.2%1
0%0.8%99.2%2
0%0.8%99.2%3
0%0.8%99.2%4
0%0.8%99.2%5
0.2%0.4%99.4%6
0.2%0.4%99.4%7
0.2%0.4%99.4%8
0.2%0.4%99.4%9
0.3%0.2%99.5%10
0.3%0.2%99.5%11
0.3%0.2%99.5%12
0.3%0.2%99.5%13
0.3%0.1%99.6%14
Compiler

Compiled 62 to 45 computations (27.4% saved)

sample3.2s (40.4%)

Results
2.8s8256×body128valid
373.0ms1024×body128invalid
Compiler

Compiled 124 to 90 computations (27.4% saved)

preprocess57.0ms (0.7%)

Algorithm
egg-herbie
Rules
516×fma-neg_binary32
426×fma-def_binary32
304×distribute-rgt-in_binary32
225×unsub-neg_binary32
193×cancel-sign-sub-inv_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075259
1186217
2445217
3942182
41406182
51644182
61945182
72744182
84465182
044
Stop Event
saturated
node limit
Compiler

Compiled 29 to 20 computations (31% saved)

simplify36.0ms (0.4%)

Algorithm
egg-herbie
Rules
717×fma-def_binary32
598×times-frac_binary32
385×fma-neg_binary32
232×div-sub_binary32
205×distribute-neg-frac_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01837
13831
28431
317226
426126
531226
638226
748626
874626
988026
10108526
11176426
12392226
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
8.4b
(/.f32 (fma.f32 (sin.f32 (-.f32 normAngle (*.f32 u normAngle))) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
Compiler

Compiled 146 to 89 computations (39% saved)

localize63.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (-.f32 1 u) normAngle)
0.2b
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
0.4b
(*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle)))
1.6b
(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))

series95.0ms (1.2%)

Counts
4 → 96
Calls

27 calls:

16.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
normAngle
0
6.0ms
(*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle)))
normAngle
0
6.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
n0_i
-inf
5.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
n0_i
0
5.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
normAngle
inf

rewrite58.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
625×prod-diff_binary32
157×add-sqr-sqrt_binary32
144×add-cbrt-cube_binary32
144×log1p-expm1-u_binary32
144×expm1-log1p-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01549
131349
2403049
Stop Event
node limit
Counts
4 → 90

simplify61.0ms (0.8%)

Algorithm
egg-herbie
Rules
691×cancel-sign-sub-inv_binary32
391×fma-def_binary32
371×associate-*r*_binary32
266×associate-+r+_binary32
236×associate-*l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02632410
19102364
237372360
Stop Event
node limit
Counts
186 → 141

prune244.0ms (3.1%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1347141
Fresh011
Picked101
Done000
Total1358143
Error
0.0b
Counts
143 → 8
Alt Table
StatusErrorProgram
8.4b
(/.f32 (fma.f32 (sin.f32 (-.f32 normAngle (*.f32 u normAngle))) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
0.8b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
1.0b
(+.f32 (*.f32 (log1p.f32 (expm1.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle)))) n0_i) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 1 (/.f32 (sin.f32 normAngle) (sin.f32 (*.f32 u normAngle)))) n1_i))
0.9b
(+.f32 (*.f32 (/.f32 (sin.f32 (-.f32 normAngle (*.f32 u normAngle))) (sin.f32 normAngle)) n0_i) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
0.8b
(+.f32 (+.f32 (*.f32 (*.f32 normAngle (*.f32 normAngle n0_i)) (+.f32 (*.f32 u 1/2) (*.f32 1/6 (pow.f32 u 3)))) (-.f32 n0_i (fma.f32 1/6 (*.f32 (*.f32 normAngle (*.f32 u n0_i)) normAngle) (fma.f32 u n0_i (*.f32 1/2 (*.f32 u (*.f32 (*.f32 normAngle (*.f32 u n0_i)) normAngle))))))) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
1.3b
(+.f32 (*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (pow.f32 (cbrt.f32 (sin.f32 normAngle)) 2)) (cbrt.f32 (sin.f32 normAngle))) n0_i) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
1.2b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 u normAngle)) (pow.f32 (cbrt.f32 (sin.f32 normAngle)) 2)) (cbrt.f32 (sin.f32 normAngle))) n1_i))
Compiler

Compiled 5749 to 3256 computations (43.4% saved)

localize43.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
0.1b
(*.f32 (-.f32 1 u) normAngle)
0.2b
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
0.4b
(*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle)))

series60.0ms (0.8%)

Counts
1 → 48
Calls

12 calls:

17.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
normAngle
0
6.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
n1_i
inf
5.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
normAngle
-inf
4.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
normAngle
inf
4.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
u
0

rewrite52.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
287×expm1-udef_binary32
286×log1p-udef_binary32
162×add-sqr-sqrt_binary32
151×add-cbrt-cube_binary32
151×log1p-expm1-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01521
132121
2429421
Stop Event
node limit
Counts
1 → 40

simplify40.0ms (0.5%)

Algorithm
egg-herbie
Rules
402×cancel-sign-sub-inv_binary32
390×associate--l+_binary32
262×associate-*r*_binary32
230×fma-def_binary32
225×distribute-rgt-out_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01671478
15721471
223401410
Stop Event
node limit
Counts
88 → 60

prune261.0ms (3.3%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1564160
Fresh437
Picked101
Done000
Total1617168
Error
0.0b
Counts
168 → 7
Alt Table
StatusErrorProgram
8.4b
(/.f32 (fma.f32 (sin.f32 (-.f32 normAngle (*.f32 u normAngle))) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
0.7b
(+.f32 (*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i) (*.f32 u n1_i))
0.6b
(-.f32 (+.f32 (fma.f32 n1_i u (fma.f32 1/6 (*.f32 n0_i (*.f32 (*.f32 normAngle normAngle) (pow.f32 u 3))) n0_i)) (*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)) (*.f32 n0_i (+.f32 (*.f32 (*.f32 1/2 (*.f32 u u)) (*.f32 normAngle normAngle)) u)))
1.2b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 u normAngle)) (pow.f32 (cbrt.f32 (sin.f32 normAngle)) 2)) (cbrt.f32 (sin.f32 normAngle))) n1_i))
0.8b
(+.f32 n0_i (*.f32 u (-.f32 n1_i n0_i)))
0.8b
(+.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle))) 2) n0_i) (*.f32 u n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 1 (/.f32 (sin.f32 normAngle) (sin.f32 (*.f32 u normAngle)))) n1_i))
Compiler

Compiled 5500 to 3066 computations (44.3% saved)

localize83.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)
0.1b
(*.f32 u (*.f32 normAngle normAngle))
0.1b
(*.f32 (*.f32 normAngle normAngle) (pow.f32 u 3))
0.1b
(*.f32 (*.f32 1/2 (*.f32 u u)) (*.f32 normAngle normAngle))

series63.0ms (0.8%)

Counts
4 → 108
Calls

27 calls:

4.0ms
(*.f32 (*.f32 normAngle normAngle) (pow.f32 u 3))
normAngle
-inf
4.0ms
(*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)
n0_i
0
4.0ms
(*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)
u
-inf
3.0ms
(*.f32 (*.f32 1/2 (*.f32 u u)) (*.f32 normAngle normAngle))
u
-inf
3.0ms
(*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)
n0_i
inf

rewrite52.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
276×expm1-udef_binary32
276×log1p-udef_binary32
187×associate-*r*_binary32
159×add-sqr-sqrt_binary32
151×log1p-expm1-u_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01643
133640
2400440
Stop Event
node limit
Counts
4 → 58

simplify149.0ms (1.9%)

Algorithm
egg-herbie
Rules
676×associate-*l*_binary32
603×*-commutative_binary32
582×sqr-pow_binary32
488×associate-*r*_binary32
245×cube-prod_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0201188
1541188
21461188
34811188
423031188
523541188
624851188
726851188
828711188
930921188
1036821188
1140081188
1244151188
1349171188
Stop Event
node limit
Counts
166 → 67

prune118.0ms (1.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New67067
Fresh066
Picked011
Done000
Total67774
Error
0.0b
Counts
74 → 7
Alt Table
StatusErrorProgram
8.4b
(/.f32 (fma.f32 (sin.f32 (-.f32 normAngle (*.f32 u normAngle))) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
0.7b
(+.f32 (*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i) (*.f32 u n1_i))
0.6b
(-.f32 (+.f32 (fma.f32 n1_i u (fma.f32 1/6 (*.f32 n0_i (*.f32 (*.f32 normAngle normAngle) (pow.f32 u 3))) n0_i)) (*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)) (*.f32 n0_i (+.f32 (*.f32 (*.f32 1/2 (*.f32 u u)) (*.f32 normAngle normAngle)) u)))
1.2b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 u normAngle)) (pow.f32 (cbrt.f32 (sin.f32 normAngle)) 2)) (cbrt.f32 (sin.f32 normAngle))) n1_i))
0.8b
(+.f32 n0_i (*.f32 u (-.f32 n1_i n0_i)))
0.8b
(+.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle))) 2) n0_i) (*.f32 u n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 1 (/.f32 (sin.f32 normAngle) (sin.f32 (*.f32 u normAngle)))) n1_i))
Compiler

Compiled 3080 to 1537 computations (50.1% saved)

localize42.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 (*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i) (*.f32 u n1_i))
0.2b
(*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i)
0.2b
(/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))
1.5b
(/.f32 (sin.f32 normAngle) (*.f32 u normAngle))

series123.0ms (1.6%)

Counts
4 → 112
Calls

33 calls:

7.0ms
(*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i)
n0_i
-inf
6.0ms
(+.f32 (*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i) (*.f32 u n1_i))
normAngle
-inf
6.0ms
(/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))
normAngle
-inf
6.0ms
(*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i)
n0_i
0
5.0ms
(*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i)
n0_i
inf

rewrite76.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
299×log1p-udef_binary32
167×add-sqr-sqrt_binary32
156×add-cbrt-cube_binary32
156×log1p-expm1-u_binary32
156×expm1-log1p-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01567
132667
2471867
Stop Event
node limit
Counts
4 → 143

simplify64.0ms (0.8%)

Algorithm
egg-herbie
Rules
928×fma-def_binary32
360×associate-*r*_binary32
353×associate-*l*_binary32
256×cancel-sign-sub-inv_binary32
233×associate-+l+_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212259
14002259
212462203
Stop Event
node limit
Counts
255 → 192

prune225.0ms (2.8%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1911192
Fresh145
Picked011
Done011
Total1927199
Error
0.0b
Counts
199 → 7
Alt Table
StatusErrorProgram
8.4b
(/.f32 (fma.f32 (sin.f32 (-.f32 normAngle (*.f32 u normAngle))) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
0.7b
(+.f32 (*.f32 (-.f32 1 (/.f32 (cos.f32 normAngle) (/.f32 (sin.f32 normAngle) (*.f32 u normAngle)))) n0_i) (*.f32 u n1_i))
0.6b
(-.f32 (+.f32 (fma.f32 n1_i u (fma.f32 1/6 (*.f32 n0_i (*.f32 (*.f32 normAngle normAngle) (pow.f32 u 3))) n0_i)) (*.f32 (*.f32 n0_i (*.f32 u (*.f32 normAngle normAngle))) 1/3)) (*.f32 n0_i (+.f32 (*.f32 (*.f32 1/2 (*.f32 u u)) (*.f32 normAngle normAngle)) u)))
1.2b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 u normAngle)) (pow.f32 (cbrt.f32 (sin.f32 normAngle)) 2)) (cbrt.f32 (sin.f32 normAngle))) n1_i))
0.7b
(+.f32 (fma.f32 u (*.f32 (*.f32 normAngle normAngle) (*.f32 1/3 n0_i)) n0_i) (*.f32 u (-.f32 n1_i n0_i)))
0.8b
(+.f32 (*.f32 (pow.f32 (sqrt.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle))) 2) n0_i) (*.f32 u n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 1 (/.f32 (sin.f32 normAngle) (sin.f32 (*.f32 u normAngle)))) n1_i))
Compiler

Compiled 4700 to 1795 computations (61.8% saved)

regimes974.0ms (12.3%)

Accuracy

Total 0.4b remaining (95.8%)

Threshold costs 0.4b (95.8%)

Counts
172 → 1
Compiler

Compiled 23133 to 15487 computations (33.1% saved)

simplify6.0ms (0.1%)

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
02452
13552
23952
34152
44252
Stop Event
saturated

end127.0ms (1.6%)

Stop Event
fuel
Compiler

Compiled 266 to 170 computations (36.1% saved)

Profiling

Loading profile data...