Details

Time bar (total: 8.3s)

analyze1.6s (19.9%)

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 48 to 35 computations (27.1% saved)

sample93.0ms (1.1%)

Algorithm
intervals
Results
50.0ms256×body128valid
13.0ms256×pre128true
2.0ms35×pre128false
Compiler

Compiled 81 to 59 computations (27.2% saved)

simplify208.0ms (2.5%)

Algorithm
egg-herbie
Rules
2213×fma-def_binary32
1110×div-sub_binary32
1069×fma-neg_binary32
619×times-frac_binary32
350×sub-neg_binary32
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01837
13831
27831
313726
420326
523226
627426
737226
843226
952326
1066626
11112126
12205126
13203426
14209226
15241726
16272226
17289726
18216926
19243926
20229926
21229926
22229926
23229926
24229926
25229926
26211426

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.9b
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.2b
(/.f32 (fma.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
Compiler

Compiled 146 to 95 computations (34.9% saved)

localize60.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.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)))

rewrite71.0ms (0.9%)

Algorithm
rewrite-expression-head
Rules
32×pow1_binary32
32×add-sqr-sqrt_binary32
26×add-exp-log_binary32
20×add-cbrt-cube_binary32
19×add-cube-cbrt_binary32
Counts
4 → 166
Calls

4 calls:

17.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
17.0ms
(*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle)))
15.0ms
(*.f32 (-.f32 1 u) normAngle)
14.0ms
(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))

series216.0ms (2.6%)

Counts
4 → 96
Calls

4 calls:

122.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i)
41.0ms
(*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle)))
39.0ms
(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))
14.0ms
(*.f32 (-.f32 1 u) normAngle)

simplify119.0ms (1.4%)

Algorithm
egg-herbie
Rules
597×associate-*r*_binary32
490×associate-*l*_binary32
430×fma-def_binary32
271×associate-+r+_binary32
188×associate-+l+_binary32
Counts
262 → 423
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04264585
112254256
249794256

prune402.0ms (4.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New41211423
Fresh011
Picked101
Done000
Total41312425
Error
0.0b
Counts
425 → 12
Alt Table
StatusErrorProgram
1.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))) 2) n1_i))
0.9b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))
1.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))) 3) n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (*.f32 u normAngle) (sin.f32 normAngle)) n1_i))
5.8b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 u normAngle)) (sin.f32 normAngle)))) 1) n1_i))
8.2b
(/.f32 (fma.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
0.9b
(+.f32 (-.f32 n0_i (*.f32 u n0_i)) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (cbrt.f32 (pow.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle)) 2)) (cbrt.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))
9.3b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 normAngle (*.f32 normAngle (pow.f32 (-.f32 1 u) 2)))) (cbrt.f32 (*.f32 normAngle (-.f32 1 u))))) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle))) n1_i))
1.1b
(+.f32 (*.f32 (log.f32 (exp.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.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (-.f32 1 u) normAngle)) 2)) (/.f32 1 (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 (sqrt.f32 (sin.f32 (*.f32 u normAngle))) (sqrt.f32 (sin.f32 (*.f32 u normAngle)))) (*.f32 (sqrt.f32 (/.f32 1 (sin.f32 normAngle))) (sqrt.f32 (/.f32 1 (sin.f32 normAngle))))) n1_i))
Compiler

Compiled 9723 to 5581 computations (42.6% saved)

localize44.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.2b
(*.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)))

rewrite24.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
add-log-exp_binary32
add-cube-cbrt_binary32
*-un-lft-identity_binary32
flip3-+_binary32
pow1_binary32
Counts
1 → 41
Calls

1 calls:

21.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))

series135.0ms (1.6%)

Counts
1 → 48
Calls

1 calls:

135.0ms
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 u n1_i))

simplify93.0ms (1.1%)

Algorithm
egg-herbie
Rules
572×cancel-sign-sub-inv_binary32
335×associate-*r*_binary32
323×fma-def_binary32
268×distribute-rgt-neg-in_binary32
263×associate-*l*_binary32
Counts
89 → 156
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02122800
16972609
228562590
349652590

prune353.0ms (4.3%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New4824486
Fresh7411
Picked101
Done000
Total4908498
Error
0b
Counts
498 → 8
Alt Table
StatusErrorProgram
0.9b
(fma.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i (*.f32 u n1_i))
1.0b
(+.f32 (*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle)))) n0_i) (*.f32 u n1_i))
0.7b
(-.f32 (fma.f32 n1_i u n0_i) (*.f32 n0_i u))
1.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))) 3) n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (*.f32 u normAngle) (sin.f32 normAngle)) n1_i))
5.8b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 u normAngle)) (sin.f32 normAngle)))) 1) n1_i))
8.2b
(/.f32 (fma.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
2.8b
(-.f32 (fma.f32 n1_i u n0_i) (/.f32 (*.f32 (cos.f32 normAngle) (*.f32 u (*.f32 n0_i normAngle))) (sin.f32 normAngle)))
Compiler

Compiled 8753 to 5106 computations (41.7% saved)

localize19.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f32 n0_i u)
0.1b
(-.f32 (fma.f32 n1_i u n0_i) (*.f32 n0_i u))

rewrite33.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
16×add-cube-cbrt_binary32
15×pow1_binary32
14×add-sqr-sqrt_binary32
add-exp-log_binary32
add-cbrt-cube_binary32
Counts
2 → 85
Calls

2 calls:

15.0ms
(-.f32 (fma.f32 n1_i u n0_i) (*.f32 n0_i u))
13.0ms
(*.f32 n0_i u)

series46.0ms (0.6%)

Counts
2 → 48
Calls

2 calls:

29.0ms
(-.f32 (fma.f32 n1_i u n0_i) (*.f32 n0_i u))
17.0ms
(*.f32 n0_i u)

simplify103.0ms (1.2%)

Algorithm
egg-herbie
Rules
459×fma-def_binary32
358×unswap-sqr_binary32
302×distribute-rgt-in_binary32
261×distribute-lft-in_binary32
248×exp-prod_binary32
Counts
133 → 220
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01211334
12611257
29141237
331121229
446171229
547961229

prune86.0ms (1%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2182220
Fresh257
Picked011
Done000
Total2208228
Error
0b
Counts
228 → 8
Alt Table
StatusErrorProgram
0.7b
(fma.f32 n1_i u (-.f32 n0_i (*.f32 n0_i u)))
2.8b
(-.f32 (fma.f32 n1_i u n0_i) (/.f32 (*.f32 (cos.f32 normAngle) (*.f32 u (*.f32 n0_i normAngle))) (sin.f32 normAngle)))
0.7b
(-.f32 (fma.f32 n1_i u n0_i) (*.f32 n0_i u))
1.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))) 3) n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (*.f32 u normAngle) (sin.f32 normAngle)) n1_i))
1.0b
(+.f32 (*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle)))) n0_i) (*.f32 u n1_i))
0.7b
(+.f32 n0_i (*.f32 u (-.f32 n1_i n0_i)))
8.2b
(/.f32 (fma.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
Compiler

Compiled 2229 to 586 computations (73.7% saved)

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f32 n0_i u)
0.0b
(-.f32 n0_i (*.f32 n0_i u))
0.1b
(fma.f32 n1_i u (-.f32 n0_i (*.f32 n0_i u)))

rewrite27.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
16×add-cube-cbrt_binary32
10×add-sqr-sqrt_binary32
add-log-exp_binary32
pow1_binary32
fma-udef_binary32
Counts
2 → 80
Calls

2 calls:

14.0ms
(-.f32 n0_i (*.f32 n0_i u))
9.0ms
(fma.f32 n1_i u (-.f32 n0_i (*.f32 n0_i u)))

series46.0ms (0.6%)

Counts
2 → 60
Calls

2 calls:

31.0ms
(fma.f32 n1_i u (-.f32 n0_i (*.f32 n0_i u)))
15.0ms
(-.f32 n0_i (*.f32 n0_i u))

simplify90.0ms (1.1%)

Algorithm
egg-herbie
Rules
929×fma-neg_binary32
698×associate-*l*_binary32
559×associate-*r*_binary32
481×fma-def_binary32
252×cancel-sign-sub-inv_binary32
Counts
140 → 233
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01121453
12711357
28911328
340491328
448671328

prune102.0ms (1.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New3050305
Fresh066
Picked011
Done011
Total3058313
Error
0b
Counts
313 → 8
Alt Table
StatusErrorProgram
0.7b
(fma.f32 n1_i u (-.f32 n0_i (*.f32 n0_i u)))
2.8b
(-.f32 (fma.f32 n1_i u n0_i) (/.f32 (*.f32 (cos.f32 normAngle) (*.f32 u (*.f32 n0_i normAngle))) (sin.f32 normAngle)))
0.7b
(-.f32 (fma.f32 n1_i u n0_i) (*.f32 n0_i u))
1.1b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 1 (sin.f32 normAngle)))) 3) n1_i))
1.0b
(+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) (/.f32 1 (sin.f32 normAngle))) n0_i) (*.f32 (/.f32 (*.f32 u normAngle) (sin.f32 normAngle)) n1_i))
1.0b
(+.f32 (*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 normAngle (-.f32 1 u))) (sin.f32 normAngle)))) n0_i) (*.f32 u n1_i))
0.7b
(+.f32 n0_i (*.f32 u (-.f32 n1_i n0_i)))
8.2b
(/.f32 (fma.f32 (sin.f32 (*.f32 (-.f32 1 u) normAngle)) n0_i (*.f32 (sin.f32 (*.f32 u normAngle)) n1_i)) (sin.f32 normAngle))
Compiler

Compiled 2350 to 650 computations (72.3% saved)

regimes1.1s (12.7%)

Accuracy

Total 0.6b remaining (97.1%)

Threshold costs 0.6b (97.1%)

Compiler

Compiled 19243 to 13367 computations (30.5% saved)

simplify4.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
0711
11311
22311
32911
43311
53411
63411

end0.0ms (0%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

sample3.2s (38.3%)

Algorithm
intervals
Results
1.7s8000×body128valid
482.0ms8000×pre128true
53.0ms965×pre128false
Compiler

Compiled 219 to 148 computations (32.4% saved)

Profiling

Loading profile data...