Details

Time bar (total: 11.0s)

analyze1.8s (16.3%)

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.3s (29.5%)

Results
2.0s8256×body128valid
1.1s4713×body128invalid
Compiler

Compiled 109 to 73 computations (33% saved)

simplify142.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
3.8b
Counts
2 → 1
Alt Table
StatusErrorProgram
3.8b
(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)

localize44.0ms (0.4%)

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.1b
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))
0.1b
(/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))
3.3b
(sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))

series294.0ms (2.7%)

Counts
4 → 104
Calls

4 calls:

221.0ms
(/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))
31.0ms
(sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))
29.0ms
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))
12.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))))))))

rewrite138.0ms (1.3%)

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

4 calls:

126.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))))))))
126.0ms
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))
126.0ms
(/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))
126.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

simplify133.0ms (1.2%)

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
396 → 383
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02604664
18874519
236334517
349854513
449884513

prune487.0ms (4.4%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New3767383
Fresh000
Picked101
Done000
Total3777384
Error
0.6b
Counts
384 → 7
Alt Table
StatusErrorProgram
3.7b
(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)))))))
4.0b
(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))
10.4b
(asin.f32 (/.f32 h (pow.f32 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 3/2) 1/3)))
1.5b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (/.f32 (pow.f32 sinTheta_O 2) eta)))))
4.4b
(asin.f32 (*.f32 (/.f32 (pow.f32 (cbrt.f32 h) 2) 1) (/.f32 (cbrt.f32 h) (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))
4.1b
(asin.f32 (*.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4)) (/.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4))))
26.3b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))))) (fma.f32 (neg.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.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 18944 to 11089 computations (41.5% saved)

localize45.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series123.0ms (1.1%)

Counts
4 → 24
Calls

4 calls:

70.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (/.f32 (pow.f32 sinTheta_O 2) eta))))
33.0ms
(/.f32 (pow.f32 sinTheta_O 2) eta)
12.0ms
(*.f32 1/2 (/.f32 (pow.f32 sinTheta_O 2) eta))
8.0ms
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (/.f32 (pow.f32 sinTheta_O 2) eta)))))

rewrite92.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
705×prod-diff_binary32
245×log1p-udef_binary32
138×add-sqr-sqrt_binary32
133×log1p-expm1-u_binary32
133×expm1-log1p-u_binary32
Counts
4 → 128
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01251
127451
2348051
3523451

simplify58.0ms (0.5%)

Algorithm
egg-herbie
Rules
531×cancel-sign-sub-inv_binary32
363×fma-neg_binary32
334×times-frac_binary32
313×neg-mul-1_binary32
310×neg-sub0_binary32
Counts
152 → 143
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060804
1178798
2598786
32621771
44434771
55029771

prune142.0ms (1.3%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1394143
Fresh246
Picked101
Done000
Total1428150
Error
0.3b
Counts
150 → 8
Alt Table
StatusErrorProgram
3.7b
(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)))))))
1.7b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)) h) -1))
24.5b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)))))) (fma.f32 (neg.f32 (sqrt.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)))))) (sqrt.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))) (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))))
10.4b
(asin.f32 (/.f32 h (pow.f32 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 3/2) 1/3)))
4.1b
(asin.f32 (*.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4)) (/.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4))))
1.1b
(asin.f32 (/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta)))))))
2.1b
(asin.f32 (*.f32 (pow.f32 (cbrt.f32 h) 2) (*.f32 (cbrt.f32 h) (/.f32 1 (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))))
26.3b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))))) (fma.f32 (neg.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.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 4221 to 2309 computations (45.3% saved)

localize38.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta))))
0.1b
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta))))))
0.1b
(*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta)))
0.3b
(*.f32 sinTheta_O (/.f32 1 eta))

series99.0ms (0.9%)

Counts
4 → 108
Calls

4 calls:

70.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta))))))
13.0ms
(*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta))))
10.0ms
(*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta)))
6.0ms
(*.f32 sinTheta_O (/.f32 1 eta))

rewrite66.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
803×prod-diff_binary32
132×add-sqr-sqrt_binary32
124×log1p-expm1-u_binary32
124×expm1-log1p-u_binary32
122×add-cbrt-cube_binary32
Counts
4 → 96
Calls

4 calls:

64.0ms
(*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta))))
64.0ms
(/.f32 h (-.f32 eta (*.f32 1/2 (*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta))))))
64.0ms
(*.f32 sinTheta_O (*.f32 sinTheta_O (/.f32 1 eta)))
64.0ms
(*.f32 sinTheta_O (/.f32 1 eta))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01237
126537
2335337
3491337

simplify94.0ms (0.8%)

Algorithm
egg-herbie
Rules
538×cancel-sign-sub-inv_binary32
366×fma-neg_binary32
334×times-frac_binary32
326×neg-mul-1_binary32
322×neg-sub0_binary32
Counts
204 → 117
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0651500
11921494
26231458
326831443
445371443
551491443

prune130.0ms (1.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1125117
Fresh167
Picked101
Done000
Total11411125
Error
0.3b
Counts
125 → 11
Alt Table
StatusErrorProgram
24.5b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)))))) (fma.f32 (neg.f32 (sqrt.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)))))) (sqrt.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))) (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))))
1.3b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)) h) -1))
1.1b
(asin.f32 (/.f32 h (-.f32 eta (exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
16.7b
(asin.f32 (*.f32 (/.f32 (sqrt.f32 h) (pow.f32 (cbrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))) 2)) (/.f32 (sqrt.f32 h) (cbrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
1.5b
(asin.f32 (*.f32 (/.f32 1 (sqrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))) (/.f32 h (sqrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
4.1b
(asin.f32 (*.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4)) (/.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4))))
3.7b
(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)))))))
10.4b
(asin.f32 (/.f32 h (pow.f32 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 3/2) 1/3)))
1.8b
(asin.f32 (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))) 2)) (/.f32 h (cbrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
2.1b
(asin.f32 (*.f32 (pow.f32 (cbrt.f32 h) 2) (*.f32 (cbrt.f32 h) (/.f32 1 (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))))
26.3b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))))) (fma.f32 (neg.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.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 3028 to 1723 computations (43.1% saved)

localize39.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f32 h (-.f32 eta (exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))))
0.1b
(*.f32 sinTheta_O (/.f32 sinTheta_O eta))
1.8b
(exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))
10.8b
(log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))

series1.3s (11.5%)

Counts
4 → 108
Calls

4 calls:

1.2s
(log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))
69.0ms
(/.f32 h (-.f32 eta (exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))))
13.0ms
(exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))
10.0ms
(*.f32 sinTheta_O (/.f32 sinTheta_O eta))

rewrite78.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
773×prod-diff_binary32
225×log1p-udef_binary32
124×add-sqr-sqrt_binary32
120×egg-rr
118×log1p-expm1-u_binary32
Counts
4 → 120
Calls

4 calls:

76.0ms
(/.f32 h (-.f32 eta (exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))))
76.0ms
(*.f32 sinTheta_O (/.f32 sinTheta_O eta))
76.0ms
(exp.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))
76.0ms
(log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01245
124245
2329945
3523945

simplify84.0ms (0.8%)

Algorithm
egg-herbie
Rules
779×fma-neg_binary32
570×cancel-sign-sub-inv_binary32
334×times-frac_binary32
324×distribute-rgt-neg-in_binary32
241×associate-/l*_binary32
Counts
228 → 149
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0911764
12491726
27441682
330121676
449851676
553111676

prune156.0ms (1.4%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1463149
Fresh1910
Picked101
Done000
Total14812160
Error
0.3b
Counts
160 → 12
Alt Table
StatusErrorProgram
24.5b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)))))) (fma.f32 (neg.f32 (sqrt.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2)))))) (sqrt.f32 (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))) (acos.f32 (/.f32 h (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))))
1.3b
(asin.f32 (pow.f32 (/.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)) h) -1))
16.5b
(asin.f32 (*.f32 (/.f32 (sqrt.f32 h) 1) (/.f32 (sqrt.f32 h) (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))))
3.7b
(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)))))))
1.5b
(asin.f32 (*.f32 (/.f32 1 (sqrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))) (/.f32 h (sqrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
4.1b
(asin.f32 (*.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4)) (/.f32 h (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 1/4))))
1.1b
(asin.f32 (/.f32 h (-.f32 eta (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))) 2)) (cbrt.f32 (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2)))))))
26.3b
(+.f32 (fma.f32 (PI.f32) 1/2 (neg.f32 (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))))))) (fma.f32 (neg.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (*.f32 (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))))))) (cbrt.f32 (acos.f32 (/.f32 h (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O)))))))))))))
10.4b
(asin.f32 (/.f32 h (pow.f32 (pow.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 1 (*.f32 sinTheta_O sinTheta_O))))) 3/2) 1/3)))
1.8b
(asin.f32 (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))) 2)) (/.f32 h (cbrt.f32 (-.f32 eta (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
2.1b
(asin.f32 (*.f32 (pow.f32 (cbrt.f32 h) 2) (*.f32 (cbrt.f32 h) (/.f32 1 (-.f32 eta (*.f32 (/.f32 (*.f32 sinTheta_O sinTheta_O) eta) 1/2))))))
1.1b
(asin.f32 (/.f32 h (-.f32 eta (pow.f32 (exp.f32 1) (log.f32 (*.f32 (*.f32 sinTheta_O (/.f32 sinTheta_O eta)) 1/2))))))
Compiler

Compiled 3271 to 1835 computations (43.9% saved)

regimes2.0s (17.8%)

Accuracy

Total 0.2b remaining (60%)

Threshold costs 0.2b (60%)

Counts
165 → 2
Compiler

Compiled 48016 to 31269 computations (34.9% saved)

bsearch3.0ms (0%)

Steps
ItersRangePoint
0
0.0
1.401298464324817e-45
0.0
Compiler

Compiled 13 to 8 computations (38.5% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
sub-neg_binary32
*-commutative_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02054
13054
23754
34254
44454
54354

end266.0ms (2.4%)

Compiler

Compiled 587 to 350 computations (40.4% saved)

Profiling

Loading profile data...