Details

Time bar (total: 26.7s)

analyze573.0ms (2.1%)

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)

sample2.4s (8.9%)

Results
2.3s8256×body128valid
Compiler

Compiled 130 to 94 computations (27.7% saved)

simplify50.0ms (0.2%)

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.1b
(*.f32 (cos.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.1b
(*.f32 (cos.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))))))
Compiler

Compiled 156 to 110 computations (29.5% saved)

localize60.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.2b
(*.f32 (cos.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)))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
14.7b
(fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)

series268.0ms (1%)

Counts
4 → 80
Calls

4 calls:

246.0ms
(*.f32 (cos.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)
4.0ms
(cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
3.0ms
(*.f32 (*.f32 uy 2) (PI.f32))

rewrite15.0ms (0.1%)

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:

6.0ms
(*.f32 (cos.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
(cos.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)

simplify172.0ms (0.6%)

Algorithm
egg-herbie
Rules
477×associate-*l*_binary32
474×fma-neg_binary32
411×associate-*r*_binary32
313×fma-def_binary32
258×*-commutative_binary32
Counts
143 → 173
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03697663
111346796
248356794
352436794

prune287.0ms (1.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New16211173
Fresh101
Picked101
Done000
Total16411175
Error
0.2b
Counts
175 → 11
Alt Table
StatusErrorProgram
14.1b
(*.f32 (cos.f32 (*.f32 (*.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cbrt.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)))
2.4b
(-.f32 (*.f32 (fma.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4)) 1) (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 (-.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 (*.f32 uy uy) (pow.f32 (PI.f32) 2)) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6))))))
0.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (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)))))))
1.2b
(fma.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (-.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
3.0b
(-.f32 (+.f32 (*.f32 2/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4)) (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)))))))) (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 (pow.f32 (PI.f32) 2) (pow.f32 uy 2)) (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)))))))))
7.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
7.1b
(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))))))
1.0b
(-.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))) (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))) (*.f32 1/2 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))))))
14.1b
(log.f32 (exp.f32 (*.f32 (cos.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.2b
(-.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))))
14.1b
(*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))) (sqrt.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))
Compiler

Compiled 10789 to 7120 computations (34% saved)

localize93.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.2b
(*.f32 maxCos (pow.f32 ux 2))
0.2b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (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)))))))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))

series270.0ms (1%)

Counts
2 → 32
Calls

2 calls:

261.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (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)))))))
9.0ms
(*.f32 maxCos (pow.f32 ux 2))

rewrite40.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
20×add-sqr-sqrt_binary32
17×associate-*r*_binary32
13×*-un-lft-identity_binary32
add-exp-log_binary32
add-cube-cbrt_binary32
Counts
2 → 62
Calls

2 calls:

20.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (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)))))))
4.0ms
(*.f32 maxCos (pow.f32 ux 2))

simplify163.0ms (0.6%)

Algorithm
egg-herbie
Rules
514×associate-*l*_binary32
484×associate-*r*_binary32
358×fma-def_binary32
191×fma-neg_binary32
180×times-frac_binary32
Counts
94 → 145
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04017626
112846684
248896682
349916682

prune686.0ms (2.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1938201
Fresh7310
Picked101
Done000
Total20111212
Error
0.1b
Counts
212 → 11
Alt Table
StatusErrorProgram
0.4b
(cbrt.f32 (*.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (*.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)))))) (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))))))) (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)))))))))
2.4b
(-.f32 (*.f32 (fma.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4)) 1) (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 (-.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 (*.f32 uy uy) (pow.f32 (PI.f32) 2)) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6))))))
6.8b
(/.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 (+.f32 (pow.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) 3) (pow.f32 (*.f32 2 ux) 3)) (-.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))) (*.f32 (+.f32 (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 (*.f32 maxCos (pow.f32 ux 2)))) (-.f32 (*.f32 (*.f32 2 ux) (*.f32 2 ux)) (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)))) (-.f32 (*.f32 (pow.f32 ux 2) (pow.f32 ux 2)) (*.f32 (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (sqrt.f32 (*.f32 (+.f32 (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 (*.f32 maxCos (pow.f32 ux 2)))) (-.f32 (*.f32 (*.f32 2 ux) (*.f32 2 ux)) (*.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)))))))
7.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
0.6b
(*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (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))))))) (sqrt.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))))))))
0.4b
(*.f32 (expm1.f32 (log1p.f32 (cos.f32 (*.f32 2 (*.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)))))))
1.2b
(fma.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (-.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
0.9b
(*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (cbrt.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)))))) (cbrt.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)))))))) (cbrt.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))))))))
0.4b
(*.f32 (cos.f32 (exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (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)))))))
2.1b
(*.f32 (sqrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (sqrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (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))))))))
0.9b
(*.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 2 (*.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)))))))
Compiler

Compiled 15481 to 10273 computations (33.6% saved)

localize101.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 maxCos (pow.f32 ux 2))
0.2b
(*.f32 (cos.f32 (exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (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)))))))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
1.4b
(exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (PI.f32))))

series256.0ms (1%)

Counts
2 → 44
Calls

2 calls:

253.0ms
(*.f32 (cos.f32 (exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (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)))))))
3.0ms
(exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (PI.f32))))

rewrite32.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary32
11×*-un-lft-identity_binary32
10×pow1_binary32
associate-*r*_binary32
sqrt-prod_binary32
Counts
2 → 50
Calls

2 calls:

19.0ms
(*.f32 (cos.f32 (exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (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)))))))
4.0ms
(exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (PI.f32))))

simplify155.0ms (0.6%)

Algorithm
egg-herbie
Rules
498×fma-neg_binary32
469×associate-*l*_binary32
447×associate-*r*_binary32
358×fma-def_binary32
156×times-frac_binary32
Counts
94 → 126
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03787592
112446681
249006679
353136679

prune547.0ms (2%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New2011202
Fresh1910
Picked101
Done000
Total20310213
Error
0.1b
Counts
213 → 10
Alt Table
StatusErrorProgram
0.4b
(cbrt.f32 (*.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (*.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)))))) (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))))))) (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)))))))))
2.4b
(-.f32 (*.f32 (fma.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4)) 1) (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 (-.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 (*.f32 uy uy) (pow.f32 (PI.f32) 2)) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6))))))
6.8b
(/.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 (+.f32 (pow.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) 3) (pow.f32 (*.f32 2 ux) 3)) (-.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))) (*.f32 (+.f32 (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 (*.f32 maxCos (pow.f32 ux 2)))) (-.f32 (*.f32 (*.f32 2 ux) (*.f32 2 ux)) (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)))) (-.f32 (*.f32 (pow.f32 ux 2) (pow.f32 ux 2)) (*.f32 (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (sqrt.f32 (*.f32 (+.f32 (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 (*.f32 maxCos (pow.f32 ux 2)))) (-.f32 (*.f32 (*.f32 2 ux) (*.f32 2 ux)) (*.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)))))))
6.2b
(log.f32 (exp.f32 (*.f32 (cos.f32 (exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (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)))))))))
0.4b
(*.f32 (expm1.f32 (log1p.f32 (cos.f32 (*.f32 2 (*.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)))))))
1.2b
(fma.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (-.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
0.9b
(*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (cbrt.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)))))) (cbrt.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)))))))) (cbrt.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))))))))
7.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
2.1b
(*.f32 (sqrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (sqrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (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))))))))
0.9b
(*.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 2 (*.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)))))))
Compiler

Compiled 15631 to 10455 computations (33.1% saved)

localize156.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))
0.3b
(*.f32 (*.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)))))) (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))))))) (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)))))))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
0.5b
(*.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)))))) (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)))))))

series605.0ms (2.3%)

Counts
3 → 56
Calls

3 calls:

566.0ms
(*.f32 (*.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)))))) (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))))))) (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)))))))
30.0ms
(*.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)))))) (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)))))))
9.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))

rewrite1.7s (6.4%)

Algorithm
rewrite-expression-head
Rules
966×sqrt-div_binary32
644×flip-+_binary32
644×frac-sub_binary32
644×flip3-+_binary32
576×frac-times_binary32
Counts
3 → 541
Calls

3 calls:

70.0ms
(*.f32 (*.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)))))) (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))))))) (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)))))))
40.0ms
(*.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)))))) (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)))))))
5.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))

simplify2.4s (9%)

Algorithm
egg-herbie
Rules
752×*-commutative_binary32
584×associate-*l*_binary32
274×distribute-rgt-in_binary32
233×+-commutative_binary32
224×fma-def_binary32
Counts
597 → 770
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01468166607
13436151710
25111151710

prune6.3s (23.5%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New8594863
Fresh279
Picked101
Done000
Total86211873
Error
0.1b
Counts
873 → 11
Alt Table
StatusErrorProgram
6.8b
(/.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 (+.f32 (pow.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) 3) (pow.f32 (*.f32 2 ux) 3)) (-.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))) (*.f32 (+.f32 (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 (*.f32 maxCos (pow.f32 ux 2)))) (-.f32 (*.f32 (*.f32 2 ux) (*.f32 2 ux)) (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)))) (-.f32 (*.f32 (pow.f32 ux 2) (pow.f32 ux 2)) (*.f32 (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (sqrt.f32 (*.f32 (+.f32 (*.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 (*.f32 maxCos (pow.f32 ux 2)))) (-.f32 (*.f32 (*.f32 2 ux) (*.f32 2 ux)) (*.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)))))))
6.2b
(log.f32 (exp.f32 (*.f32 (cos.f32 (exp.f32 (log.f32 (*.f32 (*.f32 uy 2) (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)))))))))
0.4b
(*.f32 (expm1.f32 (log1p.f32 (cos.f32 (*.f32 2 (*.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)))))))
1.2b
(fma.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (-.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
0.9b
(*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (cbrt.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)))))) (cbrt.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)))))))) (cbrt.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))))))))
7.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
0.3b
(cbrt.f32 (*.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.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/2)))
12.6b
(cbrt.f32 (*.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (/.f32 (*.f32 (-.f32 (*.f32 (*.f32 8 (+.f32 (*.f32 (pow.f32 ux 6) (pow.f32 maxCos 3)) (pow.f32 ux 3))) (+.f32 (pow.f32 ux 4) (*.f32 (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 ux maxCos))) (-.f32 (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 ux maxCos))) (*.f32 ux ux))))) (*.f32 (+.f32 (*.f32 4 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (*.f32 (*.f32 2 ux) (*.f32 2 (-.f32 ux (*.f32 (*.f32 ux ux) maxCos))))) (+.f32 (pow.f32 ux 6) (pow.f32 (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 ux maxCos))) 3)))) (sqrt.f32 (-.f32 (*.f32 4 (*.f32 (+.f32 (*.f32 (*.f32 ux ux) maxCos) ux) (+.f32 (*.f32 (*.f32 ux ux) maxCos) ux))) (*.f32 (+.f32 (*.f32 (+.f32 (*.f32 maxCos maxCos) 1) (*.f32 ux ux)) (*.f32 2 (*.f32 ux maxCos))) (+.f32 (*.f32 (+.f32 (*.f32 maxCos maxCos) 1) (*.f32 ux ux)) (*.f32 2 (*.f32 ux maxCos))))))) (*.f32 (*.f32 (+.f32 (pow.f32 ux 4) (*.f32 (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 ux maxCos))) (-.f32 (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 ux maxCos))) (*.f32 ux ux)))) (+.f32 (*.f32 4 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (*.f32 (*.f32 2 ux) (*.f32 2 (-.f32 ux (*.f32 (*.f32 ux ux) maxCos)))))) (sqrt.f32 (+.f32 (*.f32 2 (+.f32 (*.f32 (*.f32 ux ux) maxCos) ux)) (+.f32 (*.f32 (+.f32 (*.f32 maxCos maxCos) 1) (*.f32 ux ux)) (*.f32 2 (*.f32 ux maxCos)))))))))
0.3b
(cbrt.f32 (*.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (cos.f32 (*.f32 (*.f32 (*.f32 2 uy) (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32))))) (*.f32 (*.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)))))) (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))))))) (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)))))))))
0.9b
(*.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 2 (*.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)))))))
0.4b
(cbrt.f32 (*.f32 (*.f32 (/.f32 (+.f32 1 (cos.f32 (*.f32 (PI.f32) (*.f32 uy 4)))) 2) (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (*.f32 (*.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)))))) (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))))))) (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)))))))))
Compiler

Compiled 244009 to 164931 computations (32.4% saved)

regimes8.9s (33.3%)

Accuracy

Total 0.3b remaining (77.8%)

Threshold costs 0.3b (77.8%)

Counts
401 → 1
Compiler

Compiled 274230 to 198309 computations (27.7% saved)

simplify6.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02784
14284
25184
36384
48684
510284
611284
711884
812084
911984

end507.0ms (1.9%)

Compiler

Compiled 1117 to 761 computations (31.9% saved)

Profiling

Loading profile data...