Details

Time bar (total: 11.5s)

analyze1.7s (14.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%6.3%93.7%0
0%6.3%93.7%1
0%6.3%93.7%2
0%6.3%93.7%3
0%6.3%93.7%4
0%6.3%93.7%5
0.8%5.5%93.7%6
0.8%5.5%93.7%7
1%4.9%94.1%8
1.4%4.4%94.2%9
1.4%3.9%94.8%10
1.5%3%95.5%11
1.7%2.7%95.6%12
1.7%2.2%96.1%13
1.8%1.6%96.6%14
Compiler

Compiled 44 to 30 computations (31.8% saved)

sample3.0s (25.7%)

Results
1.8s8256×body128valid
975.0ms4536×body128invalid
Compiler

Compiled 109 to 73 computations (33% saved)

simplify145.0ms (1.3%)

Algorithm
egg-herbie
Rules
1390×div-sub_binary32
623×sub-neg_binary32
600×fma-neg_binary32
545×fma-def_binary32
530×unsub-neg_binary32
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01428
12628
23928
37428
411428
516728
624628
743028
866328
999828
10198728
11252128
12353528
13437128
14474728
15479528
16487728
17486028
18563228

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
2.9b
Counts
2 → 1
Alt Table
StatusErrorProgram
2.9b
(asin.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))
Compiler

Compiled 63 to 39 computations (38.1% saved)

localize39.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(asin.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))
0.0b
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))
0.0b
(/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))
2.6b
(sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))

series368.0ms (3.2%)

Counts
4 → 104
Calls

4 calls:

281.0ms
(/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))
40.0ms
(sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))
31.0ms
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))
15.0ms
(asin.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))

rewrite136.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
898×prod-diff_binary32
288×egg-rr
153×add-sqr-sqrt_binary32
147×log1p-expm1-u_binary32
147×expm1-log1p-u_binary32
Counts
4 → 288
Calls

4 calls:

125.0ms
(asin.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))
125.0ms
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))
125.0ms
(/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))
125.0ms
(sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01498
130898
2392798
3577898
000
100

simplify126.0ms (1.1%)

Algorithm
egg-herbie
Rules
323×cancel-sign-sub-inv_binary32
240×fma-def_binary32
196×times-frac_binary32
194×fma-neg_binary32
189×associate-/r*_binary32
Counts
392 → 379
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02604664
18874519
236334517
349854513
449884513

prune486.0ms (4.2%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New3727379
Fresh000
Picked101
Done000
Total3737380
Error
0.3b
Counts
380 → 7
Alt Table
StatusErrorProgram
3.6b
(asin.f32 (*.f32 (pow.f32 (cbrt.f32 h) 2) (*.f32 (cbrt.f32 h) (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2))))
3.1b
(asin.f32 (/.f32 h (*.f32 (cbrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))) (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
2.9b
(asin.f32 (/.f32 h (sqrt.f32 (*.f32 (+.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4))) (-.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4)))))))
3.1b
(asin.f32 (pow.f32 (/.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))) h) -1))
4.4b
(asin.f32 (/.f32 h (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
3.1b
(asin.f32 (*.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2)))
0.5b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
Compiler

Compiled 18552 to 10895 computations (41.3% saved)

localize47.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))
0.0b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
0.0b
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))))
4.4b
(/.f32 (pow.f32 sinTheta_O 2) eta)

series298.0ms (2.6%)

Counts
4 → 36
Calls

4 calls:

208.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))))
62.0ms
(*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))
15.0ms
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
12.0ms
(/.f32 (pow.f32 sinTheta_O 2) eta)

rewrite86.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
327×log1p-udef_binary32
187×add-sqr-sqrt_binary32
180×log1p-expm1-u_binary32
180×expm1-log1p-u_binary32
176×add-log-exp_binary32
Counts
4 → 104
Calls

4 calls:

83.0ms
(*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))
83.0ms
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
83.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 (pow.f32 sinTheta_O 2) eta) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))))
83.0ms
(/.f32 (pow.f32 sinTheta_O 2) eta)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01793
138384
2481084
3522284
000
100

simplify77.0ms (0.7%)

Algorithm
egg-herbie
Rules
540×fma-neg_binary32
296×cancel-sign-sub-inv_binary32
255×associate-/r/_binary32
237×associate-/l/_binary32
203×associate-/r*_binary32
Counts
140 → 165
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02242013
17551896
228781816
349081814
451841814

prune233.0ms (2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1614165
Fresh156
Picked101
Done000
Total1639172
Error
0.1b
Counts
172 → 9
Alt Table
StatusErrorProgram
0.7b
(asin.f32 (*.f32 h (/.f32 1 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))))))
2.9b
(asin.f32 (/.f32 h (sqrt.f32 (*.f32 (+.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4))) (-.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4)))))))
0.3b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
0.7b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1))
3.6b
(asin.f32 (*.f32 (pow.f32 (cbrt.f32 h) 2) (*.f32 (cbrt.f32 h) (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2))))
3.1b
(asin.f32 (/.f32 h (*.f32 (cbrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))) (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
1.3b
(asin.f32 (*.f32 (/.f32 (pow.f32 (cbrt.f32 h) 2) (sqrt.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))))) (/.f32 (cbrt.f32 h) (sqrt.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))))))))
4.4b
(asin.f32 (/.f32 h (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
3.1b
(asin.f32 (*.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2)))
Compiler

Compiled 5846 to 3843 computations (34.3% saved)

localize84.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
0.0b
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))))
0.2b
(/.f32 sinTheta_O (sqrt.f32 eta))
0.3b
(pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2)

series290.0ms (2.5%)

Counts
4 → 93
Calls

4 calls:

223.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))))
26.0ms
(pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2)
23.0ms
(/.f32 sinTheta_O (sqrt.f32 eta))
17.0ms
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))

rewrite92.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
351×prod-diff_binary32
202×add-sqr-sqrt_binary32
196×log1p-expm1-u_binary32
196×expm1-log1p-u_binary32
191×add-log-exp_binary32
Counts
4 → 124
Calls

4 calls:

88.0ms
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
88.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2))))))))
88.0ms
(/.f32 sinTheta_O (sqrt.f32 eta))
88.0ms
(pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01981
142169
2470769
3536569
000
100

simplify89.0ms (0.8%)

Algorithm
egg-herbie
Rules
896×fma-def_binary32
437×fma-neg_binary32
273×cancel-sign-sub-inv_binary32
254×associate-/r/_binary32
207×neg-mul-1_binary32
Counts
217 → 170
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01572992
15202891
221512707
345902705
450262705

prune221.0ms (1.9%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1700170
Fresh088
Picked011
Done000
Total1709179
Error
0.1b
Counts
179 → 9
Alt Table
StatusErrorProgram
0.7b
(asin.f32 (*.f32 h (/.f32 1 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))))))
2.9b
(asin.f32 (/.f32 h (sqrt.f32 (*.f32 (+.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4))) (-.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4)))))))
0.3b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
0.7b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1))
3.6b
(asin.f32 (*.f32 (pow.f32 (cbrt.f32 h) 2) (*.f32 (cbrt.f32 h) (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2))))
3.1b
(asin.f32 (/.f32 h (*.f32 (cbrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))) (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
1.3b
(asin.f32 (*.f32 (/.f32 (pow.f32 (cbrt.f32 h) 2) (sqrt.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))))) (/.f32 (cbrt.f32 h) (sqrt.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))))))))
4.4b
(asin.f32 (/.f32 h (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
3.1b
(asin.f32 (*.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2)))
Compiler

Compiled 6848 to 4221 computations (38.4% saved)

localize47.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1))
0.0b
(/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h)
0.3b
(pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1)
4.4b
(/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))

series404.0ms (3.5%)

Counts
4 → 132
Calls

4 calls:

210.0ms
(pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1)
120.0ms
(/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h)
55.0ms
(/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))
18.0ms
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1))

rewrite274.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
627×prod-diff_binary32
360×egg-rr
191×add-sqr-sqrt_binary32
182×log1p-expm1-u_binary32
182×expm1-log1p-u_binary32
Counts
4 → 360
Calls

4 calls:

223.0ms
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1))
223.0ms
(/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h)
223.0ms
(pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))) h) -1)
223.0ms
(/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017107
1384101
24761101
36047101
000
100

simplify116.0ms (1%)

Algorithm
egg-herbie
Rules
417×cancel-sign-sub-inv_binary32
268×associate-/r*_binary32
239×distribute-neg-frac_binary32
229×fma-def_binary32
183×fma-neg_binary32
Counts
492 → 460
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02874969
19584848
235464828
349084828

prune747.0ms (6.5%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New4582460
Fresh167
Picked101
Done011
Total4609469
Error
0.1b
Counts
469 → 9
Alt Table
StatusErrorProgram
0.7b
(asin.f32 (*.f32 h (/.f32 1 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))))))
2.9b
(asin.f32 (/.f32 h (sqrt.f32 (*.f32 (+.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4))) (-.f32 eta (/.f32 sinTheta_O (pow.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)) 1/4)))))))
0.3b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 (pow.f32 (/.f32 sinTheta_O (sqrt.f32 eta)) 2) (sqrt.f32 (/.f32 1 (-.f32 1 (pow.f32 sinTheta_O 2)))))))))
1.3b
(asin.f32 (*.f32 (/.f32 (pow.f32 (cbrt.f32 h) 2) (sqrt.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta)))))) (/.f32 (cbrt.f32 h) (sqrt.f32 (-.f32 eta (*.f32 1/2 (/.f32 (*.f32 sinTheta_O sinTheta_O) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))))))))
0.5b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 1/2 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))) (/.f32 sinTheta_O eta)))) h) -1))
4.4b
(asin.f32 (/.f32 h (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
3.1b
(asin.f32 (/.f32 h (*.f32 (cbrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))) (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))
0.5b
(asin.f32 (pow.f32 (+.f32 (fma.f32 1 (/.f32 eta h) (neg.f32 (*.f32 (/.f32 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))) (sqrt.f32 1/2)) h) (/.f32 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))) (sqrt.f32 1/2)) 1)))) (fma.f32 (neg.f32 (/.f32 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))) (sqrt.f32 1/2)) h)) (/.f32 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))) (sqrt.f32 1/2)) 1) (*.f32 (/.f32 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))) (sqrt.f32 1/2)) h) (/.f32 (*.f32 (/.f32 sinTheta_O (sqrt.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))) eta))) (sqrt.f32 1/2)) 1)))) -1))
3.1b
(asin.f32 (*.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) -1/2)))
Compiler

Compiled 29866 to 17266 computations (42.2% saved)

regimes2.3s (19.8%)

Accuracy

Total 0.5b remaining (74.9%)

Threshold costs 0.5b (74.9%)

Counts
167 → 1
Compiler

Compiled 69938 to 44445 computations (36.5% 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
01934
13134
24134
35334
46134
56634
66834
76634

end197.0ms (1.7%)

Compiler

Compiled 396 to 271 computations (31.6% saved)

Profiling

Loading profile data...