Details

Time bar (total: 1.5min)

analyze722.0ms (0.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.1%99.9%0
0%0.1%99.9%1
0%0.1%99.9%2
0%0.1%99.9%3
0%0%99.9%4
0%0%99.9%5
0%0%99.9%6
0.1%0%99.9%7
0.1%0%99.9%8
0.1%0%99.9%9
0.1%0%99.9%10
0.1%0%99.9%11
0.1%0%99.9%12
0.1%0%99.9%13
0.1%0%99.9%14
Compiler

Compiled 51 to 37 computations (27.5% saved)

sample3.8s (4.2%)

Results
3.7s8256×body128valid
Compiler

Compiled 130 to 94 computations (27.7% saved)

simplify48.0ms (0.1%)

Algorithm
egg-herbie
Rules
743×sub-neg_binary32
674×fma-neg_binary32
386×associate--l-_binary32
316×distribute-rgt-in_binary32
286×unsub-neg_binary32
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01739
14135
211735
343133
4175533
5413533
6496633

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
14.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
14.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
14.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
Compiler

Compiled 156 to 110 computations (29.5% saved)

localize58.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
0.3b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
14.8b
(fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)

series267.0ms (0.3%)

Counts
4 → 80
Calls

4 calls:

242.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
15.0ms
(fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)
6.0ms
(*.f32 (*.f32 uy 2) (PI.f32))
4.0ms
(sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))

rewrite14.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary32
11×add-cbrt-cube_binary32
11×add-exp-log_binary32
11×pow1_binary32
associate-*r*_binary32
Counts
4 → 63
Calls

4 calls:

5.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
4.0ms
(*.f32 (*.f32 uy 2) (PI.f32))
1.0ms
(sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.0ms
(fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)

simplify145.0ms (0.2%)

Algorithm
egg-herbie
Rules
494×associate-*l*_binary32
437×associate-*r*_binary32
366×fma-def_binary32
185×associate-+r+_binary32
156×times-frac_binary32
Counts
143 → 172
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03817705
111776694
250296694

prune505.0ms (0.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New16012172
Fresh101
Picked101
Done000
Total16212174
Error
0.3b
Counts
174 → 12
Alt Table
StatusErrorProgram
14.4b
(*.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))) (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))))
1.5b
(fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (-.f32 (*.f32 maxCos (*.f32 ux ux)) (*.f32 maxCos ux))))
14.2b
(*.f32 (sin.f32 (*.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
14.4b
(exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (fma.f32 (fma.f32 maxCos ux (-.f32 1 ux)) (-.f32 ux (fma.f32 maxCos ux 1)) 1)))))
14.3b
(*.f32 (sin.f32 (exp.f32 (log.f32 (*.f32 2 (*.f32 (PI.f32) uy))))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
14.4b
(*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))
14.2b
(cbrt.f32 (*.f32 (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (*.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))))
1.5b
(-.f32 (+.f32 (*.f32 4/15 (*.f32 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))) (*.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (+.f32 (*.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 uy 3)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))))
3.2b
(*.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))) (fma.f32 2 (*.f32 (PI.f32) uy) (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3)))
14.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (+.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))
7.0b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (+.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4)))))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4)))))))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (+.f32 (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3)))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (+.f32 (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3)))) (*.f32 3/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5)))))) (*.f32 (*.f32 1/2 (*.f32 (*.f32 ux ux) (*.f32 maxCos (*.f32 maxCos (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))) (+.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3)))))))))
0.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
Compiler

Compiled 10991 to 7235 computations (34.2% saved)

localize128.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))
0.2b
(sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
0.3b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))

series525.0ms (0.6%)

Counts
2 → 56
Calls

2 calls:

503.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
21.0ms
(+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))

rewrite41.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary32
associate-*r*_binary32
*-un-lft-identity_binary32
add-cube-cbrt_binary32
sqrt-prod_binary32
Counts
2 → 40
Calls

2 calls:

25.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
9.0ms
(+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))

simplify360.0ms (0.4%)

Algorithm
egg-herbie
Rules
452×associate-*r*_binary32
410×associate-*l*_binary32
362×fma-def_binary32
184×associate-+r+_binary32
156×times-frac_binary32
Counts
96 → 126
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03547170
111526291
250406291

prune879.0ms (1%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1729181
Fresh10111
Picked101
Done000
Total18310193
Error
0.0b
Counts
193 → 10
Alt Table
StatusErrorProgram
0.8b
(*.f32 (sin.f32 (*.f32 (*.f32 (*.f32 2 uy) (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.3b
(*.f32 (*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
1.5b
(fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (-.f32 (*.f32 maxCos (*.f32 ux ux)) (*.f32 maxCos ux))))
1.0b
(*.f32 (sin.f32 (*.f32 (*.f32 (cbrt.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (cbrt.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (cbrt.f32 (*.f32 2 (*.f32 (PI.f32) uy))))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.2b
(*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))))))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 (*.f32 2 uy) (sqrt.f32 (PI.f32))) (sqrt.f32 (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.1b
(*.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))) (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
0.9b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))))) (sqrt.f32 (+.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 3) (pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)))) (sqrt.f32 (+.f32 (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))) (+.f32 (*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))) (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
Compiler

Compiled 12351 to 7243 computations (41.4% saved)

localize266.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux)))))))
0.3b
(*.f32 (PI.f32) uy)
0.3b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))))) (sqrt.f32 (+.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
0.5b
(*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))

series11.3s (12.5%)

Counts
4 → 92
Calls

4 calls:

10.6s
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))))) (sqrt.f32 (+.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
680.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux)))))))
45.0ms
(*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))
16.0ms
(*.f32 (PI.f32) uy)

rewrite98.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
47×pow1_binary32
25×add-cbrt-cube_binary32
25×add-exp-log_binary32
19×add-sqr-sqrt_binary32
19×pow-prod-down_binary32
Counts
4 → 128
Calls

4 calls:

21.0ms
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))))) (sqrt.f32 (+.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
18.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux)))))))
16.0ms
(*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))
8.0ms
(*.f32 (PI.f32) uy)

simplify1.1s (1.2%)

Algorithm
egg-herbie
Rules
602×fma-def_binary32
563×associate-+r+_binary32
489×associate-*r*_binary32
162×associate-*r/_binary32
84×associate-*l*_binary32
Counts
220 → 299
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0190753780
1541453780

prune5.2s (5.8%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2972299
Fresh369
Picked101
Done000
Total3018309
Error
0.0b
Counts
309 → 8
Alt Table
StatusErrorProgram
0.8b
(*.f32 (sin.f32 (*.f32 (*.f32 (*.f32 2 uy) (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.5b
(fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (-.f32 (*.f32 maxCos (*.f32 ux ux)) (*.f32 maxCos ux))))
0.8b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32))) (*.f32 (cbrt.f32 (PI.f32)) uy)))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))))) (sqrt.f32 (+.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.1b
(*.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))) (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
0.7b
(/.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (/.f32 (sqrt.f32 (fma.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (fma.f32 2 maxCos (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (fma.f32 2 maxCos (*.f32 (fma.f32 maxCos maxCos 1) ux))))))))
1.2b
(*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))))))
0.9b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 3) (pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)))) (sqrt.f32 (+.f32 (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))) (+.f32 (*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))) (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
Compiler

Compiled 78862 to 51046 computations (35.3% saved)

localize204.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))
0.4b
(/.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 3) (pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)))) (sqrt.f32 (+.f32 (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))) (+.f32 (*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))) (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
0.5b
(pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)
0.5b
(*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))

series44.6s (49.3%)

Counts
4 → 104
Calls

4 calls:

44.4s
(/.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 3) (pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)))) (sqrt.f32 (+.f32 (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))) (+.f32 (*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))) (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
72.0ms
(*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))
56.0ms
(pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)
48.0ms
(*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))

rewrite108.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
18×add-sqr-sqrt_binary32
17×add-cbrt-cube_binary32
17×add-exp-log_binary32
17×pow1_binary32
16×*-un-lft-identity_binary32
Counts
4 → 121
Calls

4 calls:

41.0ms
(/.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 3) (pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)))) (sqrt.f32 (+.f32 (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))) (+.f32 (*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))) (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
26.0ms
(*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))
10.0ms
(pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)
8.0ms
(*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))

simplify1.8s (2%)

Algorithm
egg-herbie
Rules
1072×fma-def_binary32
102×sqr-pow_binary32
28×sub-neg_binary32
23×cube-mult_binary32
23×unpow3_binary32
Counts
225 → 316
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03590109015
15014109015

prune7.9s (8.7%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New3160316
Fresh077
Picked011
Done000
Total3168324
Error
0.0b
Counts
324 → 8
Alt Table
StatusErrorProgram
0.8b
(*.f32 (sin.f32 (*.f32 (*.f32 (*.f32 2 uy) (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.5b
(fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (-.f32 (*.f32 maxCos (*.f32 ux ux)) (*.f32 maxCos ux))))
0.8b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32))) (*.f32 (cbrt.f32 (PI.f32)) uy)))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (+.f32 (*.f32 2 maxCos) (*.f32 (fma.f32 maxCos maxCos 1) ux))))))) (sqrt.f32 (+.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))
1.1b
(*.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))) (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
0.7b
(/.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (/.f32 (sqrt.f32 (fma.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 maxCos (*.f32 ux ux) ux))) (*.f32 (*.f32 ux (fma.f32 2 maxCos (*.f32 (fma.f32 maxCos maxCos 1) ux))) (*.f32 ux (fma.f32 2 maxCos (*.f32 (fma.f32 maxCos maxCos 1) ux))))))))
1.2b
(*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (sqrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))))))
0.9b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 3) (pow.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) 3)))) (sqrt.f32 (+.f32 (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))) (+.f32 (*.f32 (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux)))) (*.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))))))
Compiler

Compiled 165130 to 115286 computations (30.2% saved)

regimes9.9s (10.9%)

Accuracy

Total 0.5b remaining (84.3%)

Threshold costs 0.5b (84.3%)

Counts
299 → 1
Compiler

Compiled 192346 to 119076 computations (38.1% saved)

simplify9.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02351
13551
24351
36451
48351
59551
610251
710451
810251

end465.0ms (0.5%)

Compiler

Compiled 584 to 347 computations (40.6% saved)

Profiling

Loading profile data...