Details

Time bar (total: 2.9s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.1%99.9%0
0.1%0%99.9%1
Compiler

Compiled 33 to 24 computations (27.3% saved)

sample1.6s (56.2%)

Results
1.6s8256×body256valid

preprocess41.0ms (1.4%)

Algorithm
egg-herbie
Rules
601×fma-def_binary32
498×fma-neg_binary32
174×cancel-sign-sub-inv_binary32
94×sub-neg_binary32
89×unsub-neg_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01640
14032
210632
322232
454032
5115332
6198732
7232532
8240532
9241632
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(+.f32 (-.f32 1 uy) (*.f32 uy maxCos))
(+.f32 (-.f32 1 maxCos) (*.f32 maxCos ux))
(+.f32 (-.f32 1 ux) (*.f32 ux uy))
Outputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(fma.f32 ux maxCos (-.f32 1 ux))
(-.f32 (fma.f32 ux maxCos 1) ux)
(+.f32 (-.f32 1 uy) (*.f32 uy maxCos))
(-.f32 1 (-.f32 uy (*.f32 maxCos uy)))
(fma.f32 maxCos uy (-.f32 1 uy))
(-.f32 (fma.f32 maxCos uy 1) uy)
(+.f32 (-.f32 1 maxCos) (*.f32 maxCos ux))
(+.f32 (-.f32 1 maxCos) (*.f32 ux maxCos))
(fma.f32 ux maxCos (-.f32 1 maxCos))
(-.f32 (fma.f32 ux maxCos 1) maxCos)
(+.f32 (-.f32 1 ux) (*.f32 ux uy))
(fma.f32 ux uy (-.f32 1 ux))
(-.f32 (fma.f32 ux uy 1) ux)
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify15.0ms (0.5%)

Algorithm
egg-herbie
Rules
199×fma-def_binary32
155×fma-neg_binary32
47×cancel-sign-sub-inv_binary32
34×sub-neg_binary32
26×unsub-neg_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0710
1158
2358
3728
41678
53618
66188
77658
87978
98028
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Outputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(fma.f32 ux maxCos (-.f32 1 ux))
(-.f32 (fma.f32 ux maxCos 1) ux)

eval1.0ms (0%)

Compiler

Compiled 16 to 10 computations (37.5% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f32 (fma.f32 ux maxCos 1) ux)
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 19 to 13 computations (31.6% saved)

localize16.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
0.0b
(*.f32 ux maxCos)
0.0b
(*.f32 ux maxCos)
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))

series6.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
maxCos
@inf
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
1.0ms
ux
@inf
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
1.0ms
ux
@-inf
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
1.0ms
ux
@0
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
0.0ms
ux
@0
(*.f32 ux maxCos)

rewrite52.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
897×pow1_binary32
836×add-log-exp_binary32
836×log1p-expm1-u_binary32
836×expm1-log1p-u_binary32
820×add-exp-log_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0714
115412
2220812
Stop Event
node limit
Counts
2 → 50
Calls
Call 1
Inputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(*.f32 ux maxCos)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 1 (*.f32 ux (-.f32 1 maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 (-.f32 1 ux) (*.f32 ux maxCos))) (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (-.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (*.f32 ux maxCos) 1) ux)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (fma.f32 ux maxCos (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) (pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2) (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) (sqrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (pow.f32 (-.f32 1 ux) 3) (pow.f32 (*.f32 ux maxCos) 3)) (/.f32 1 (+.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 (*.f32 ux maxCos) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (*.f32 ux maxCos) 2)) (/.f32 1 (-.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (+.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 (*.f32 ux maxCos) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))) (+.f32 (pow.f32 (-.f32 1 ux) 3) (pow.f32 (*.f32 ux maxCos) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (-.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (-.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (*.f32 ux maxCos) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (-.f32 1 ux) 3) (pow.f32 (*.f32 ux maxCos) 3)) (+.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 (*.f32 ux maxCos) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (-.f32 1 ux) 3) (pow.f32 (*.f32 ux maxCos) 3)) (+.f32 (pow.f32 (*.f32 ux maxCos) 2) (-.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 (*.f32 (-.f32 1 ux) ux) maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (*.f32 ux maxCos) 2)) (-.f32 (-.f32 1 ux) (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (+.f32 (pow.f32 (-.f32 1 ux) 3) (pow.f32 (*.f32 ux maxCos) 3))) (neg.f32 (+.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 (*.f32 ux maxCos) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (*.f32 ux maxCos) 2))) (neg.f32 (-.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 1 (pow.f32 (*.f32 ux (-.f32 1 maxCos)) 3)) (+.f32 1 (+.f32 (*.f32 (*.f32 ux (-.f32 1 maxCos)) (*.f32 ux (-.f32 1 maxCos))) (*.f32 ux (-.f32 1 maxCos)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 1 (*.f32 (*.f32 ux (-.f32 1 maxCos)) (*.f32 ux (-.f32 1 maxCos)))) (+.f32 1 (*.f32 ux (-.f32 1 maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (-.f32 1 ux) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 ux maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 ux maxCos (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 maxCos ux (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (cbrt.f32 (*.f32 ux maxCos)) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (cbrt.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (*.f32 ux maxCos)) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (-.f32 1 ux)) (sqrt.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (*.f32 ux maxCos)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 ux maxCos) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 ux maxCos)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 ux maxCos) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 ux maxCos) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 ux) maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 ux maxCos) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 ux maxCos)))))))

simplify24.0ms (0.8%)

Algorithm
egg-herbie
Rules
185×fma-def_binary32
158×fma-neg_binary32
31×sub-neg_binary32
25×unsub-neg_binary32
22×cancel-sign-sub-inv_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
017303
145267
2107267
3227267
4461267
5662267
6762267
7780267
Stop Event
saturated
Counts
98 → 60
Calls
Call 1
Inputs
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(-.f32 1 ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
Outputs
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 (+.f32 maxCos -1) ux)
(-.f32 (*.f32 maxCos ux) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(*.f32 (+.f32 maxCos -1) ux)
(-.f32 (*.f32 maxCos ux) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 1 ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)

localize13.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f32 (fma.f32 ux maxCos 1) ux)
0.0b
(-.f32 (fma.f32 ux maxCos 1) ux)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
ux
@-inf
(-.f32 (fma.f32 ux maxCos 1) ux)
0.0ms
ux
@0
(-.f32 (fma.f32 ux maxCos 1) ux)
0.0ms
maxCos
@-inf
(-.f32 (fma.f32 ux maxCos 1) ux)
0.0ms
maxCos
@inf
(-.f32 (fma.f32 ux maxCos 1) ux)
0.0ms
maxCos
@0
(-.f32 (fma.f32 ux maxCos 1) ux)

rewrite40.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
672×pow1_binary32
624×add-log-exp_binary32
624×log1p-expm1-u_binary32
624×expm1-log1p-u_binary32
610×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11248
216328
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(-.f32 (fma.f32 ux maxCos 1) ux)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (fma.f32 ux maxCos 1) (neg.f32 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (fma.f32 ux maxCos 1) (*.f32 (neg.f32 ux) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (fma.f32 (neg.f32 ux) 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (fma.f32 (neg.f32 (cbrt.f32 ux)) (pow.f32 (cbrt.f32 ux) 2) ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (fma.f32 (neg.f32 (sqrt.f32 ux)) (sqrt.f32 ux) ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) (+.f32 1 (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (neg.f32 ux) (fma.f32 ux maxCos 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (-.f32 (fma.f32 ux maxCos 1) ux))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (fma.f32 ux maxCos 1) ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)) (pow.f32 (cbrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)) 2) (cbrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)) (sqrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 3) (pow.f32 ux 3)) (/.f32 1 (+.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux (+.f32 ux (fma.f32 ux maxCos 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux ux)) (/.f32 1 (+.f32 ux (fma.f32 ux maxCos 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (sqrt.f32 (fma.f32 ux maxCos 1)) (sqrt.f32 ux)) (-.f32 (sqrt.f32 (fma.f32 ux maxCos 1)) (sqrt.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (+.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux (+.f32 ux (fma.f32 ux maxCos 1)))) (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 3) (pow.f32 ux 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (+.f32 ux (fma.f32 ux maxCos 1)) (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 3) (pow.f32 ux 3)) (+.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux (+.f32 ux (fma.f32 ux maxCos 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux ux)) (+.f32 ux (fma.f32 ux maxCos 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 3) (pow.f32 ux 3))) (neg.f32 (+.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux (+.f32 ux (fma.f32 ux maxCos 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 ux ux))) (neg.f32 (+.f32 ux (fma.f32 ux maxCos 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (fma.f32 ux maxCos 1) 3) (pow.f32 (neg.f32 ux) 3)) (+.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (-.f32 (*.f32 (neg.f32 ux) (neg.f32 ux)) (*.f32 (fma.f32 ux maxCos 1) (neg.f32 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (fma.f32 ux maxCos 1) 2) (*.f32 (neg.f32 ux) (neg.f32 ux))) (-.f32 (fma.f32 ux maxCos 1) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (-.f32 (fma.f32 ux maxCos 1) ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (-.f32 (fma.f32 ux maxCos 1) ux) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (-.f32 (fma.f32 ux maxCos 1) ux)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (-.f32 (fma.f32 ux maxCos 1) ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (-.f32 (fma.f32 ux maxCos 1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (-.f32 (fma.f32 ux maxCos 1) ux) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (-.f32 (fma.f32 ux maxCos 1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (-.f32 (fma.f32 ux maxCos 1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (fma.f32 ux maxCos 1) (neg.f32 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (fma.f32 ux maxCos 1)) 2) (cbrt.f32 (fma.f32 ux maxCos 1)) (neg.f32 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (fma.f32 ux maxCos 1)) (sqrt.f32 (fma.f32 ux maxCos 1)) (neg.f32 ux))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (-.f32 (fma.f32 ux maxCos 1) ux)))))))

simplify19.0ms (0.7%)

Algorithm
egg-herbie
Rules
185×fma-def_binary32
158×fma-neg_binary32
31×sub-neg_binary32
25×unsub-neg_binary32
22×cancel-sign-sub-inv_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
017207
145171
2107171
3227171
4461171
5662171
6762171
7780171
Stop Event
saturated
Counts
61 → 47
Calls
Call 1
Inputs
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(-.f32 1 ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
Outputs
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 (+.f32 maxCos -1) ux)
(-.f32 (*.f32 maxCos ux) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(*.f32 (+.f32 maxCos -1) ux)
(-.f32 (*.f32 maxCos ux) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 1 ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 (fma.f32 maxCos ux 1) ux)

eval27.0ms (0.9%)

Compiler

Compiled 1330 to 802 computations (39.7% saved)

prune17.0ms (0.6%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1034107
Fresh000
Picked101
Done011
Total1045109
Error
0b
Counts
109 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
8.4b
1
0.5b
(-.f32 1 ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.0b
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
Compiler

Compiled 52 to 39 computations (25% saved)

localize37.0ms (1.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
0.2b
(pow.f32 (*.f32 ux maxCos) 2)
0.0b
(-.f32 (*.f32 ux maxCos) (-.f32 1 ux))
0.0b
(*.f32 ux maxCos)
0.0b
(-.f32 (*.f32 ux maxCos) (-.f32 1 ux))
0.2b
(pow.f32 (*.f32 ux maxCos) 2)
0.3b
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
0.4b
(pow.f32 (-.f32 1 ux) 2)

series13.0ms (0.4%)

Counts
4 → 84
Calls

21 calls:

TimeVariablePointExpression
2.0ms
ux
@-inf
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
1.0ms
ux
@inf
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
1.0ms
maxCos
@0
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
1.0ms
ux
@inf
(pow.f32 (-.f32 1 ux) 2)
1.0ms
ux
@0
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))

rewrite94.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
682×log-prod_binary32
662×fma-def_binary32
371×fma-neg_binary32
235×expm1-udef_binary32
235×log1p-udef_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01252
128430
2416230
Stop Event
node limit
Counts
4 → 309
Calls
Call 1
Inputs
(pow.f32 (-.f32 1 ux) 2)
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
(pow.f32 (*.f32 ux maxCos) 2)
(-.f32 (*.f32 ux maxCos) (-.f32 1 ux))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 1 ux) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 1 ux) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2))) (cbrt.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2))))) (log.f32 (cbrt.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2)))) (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (pow.f32 (-.f32 1 ux) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 1 ux) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (-.f32 1 ux) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (*.f32 (cbrt.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (-.f32 1 ux)) (*.f32 (sqrt.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (sqrt.f32 (-.f32 1 ux)) 3) (sqrt.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (-.f32 1 ux) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2)) (cbrt.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (-.f32 1 (*.f32 ux ux))) (*.f32 (+.f32 1 ux) (+.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (-.f32 1 (pow.f32 ux 3))) (*.f32 (+.f32 1 (fma.f32 ux ux ux)) (+.f32 1 (fma.f32 ux ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (-.f32 1 (pow.f32 ux 3))) (*.f32 (+.f32 1 ux) (+.f32 1 (fma.f32 ux ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (-.f32 1 (*.f32 ux ux))) (*.f32 (+.f32 1 (fma.f32 ux ux ux)) (+.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (-.f32 1 ux)) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (-.f32 1 ux)) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 ux) (-.f32 1 (pow.f32 ux 3))) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 ux) (-.f32 1 (*.f32 ux ux))) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (-.f32 1 ux) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (pow.f32 (-.f32 1 ux) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (-.f32 1 ux) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (-.f32 1 ux) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (-.f32 1 ux) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 ux) 1 (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 ux) 1 (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (cbrt.f32 (-.f32 1 ux)) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (cbrt.f32 (-.f32 1 ux)) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (-.f32 1 ux)) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (-.f32 1 ux)) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (-.f32 1 ux)) (sqrt.f32 (-.f32 1 ux)) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (-.f32 1 ux)) (sqrt.f32 (-.f32 1 ux)) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 (pow.f32 ux 3)) (/.f32 1 (+.f32 1 (fma.f32 ux ux ux))) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 (pow.f32 ux 3)) (/.f32 1 (+.f32 1 (fma.f32 ux ux ux))) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 (*.f32 ux ux)) (/.f32 1 (+.f32 1 ux)) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 (*.f32 ux ux)) (/.f32 1 (+.f32 1 ux)) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2)) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2)) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log1p.f32 (neg.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 2 (log1p.f32 (neg.f32 ux))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 1 ux) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (fma.f32 ux maxCos (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (fma.f32 ux maxCos 1) (neg.f32 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) (cbrt.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux)))))) (log.f32 (cbrt.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux))))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (fma.f32 ux maxCos (-.f32 1 ux)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (fma.f32 ux maxCos 1) ux)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (fma.f32 ux maxCos (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (/.f32 1 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) (pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2) (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) 2) (*.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (/.f32 1 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) (sqrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) (*.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) (/.f32 1 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (neg.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (/.f32 1 (neg.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (+.f32 ux (fma.f32 ux maxCos -1))) (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) 2) 1) (/.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) 1) (/.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) 2) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (/.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) 2) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (/.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (fma.f32 ux maxCos (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3))) (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (/.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (neg.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (fma.f32 ux maxCos (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (pow.f32 (exp.f32 ux) maxCos) (exp.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 (-.f32 1 ux)) (pow.f32 (exp.f32 ux) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (-.f32 1 ux))) (pow.f32 (exp.f32 ux) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 (-.f32 1 ux)) (+.f32 1 (expm1.f32 (*.f32 ux maxCos)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (-.f32 1 ux))) (+.f32 1 (expm1.f32 (*.f32 ux maxCos)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 ux maxCos))) (exp.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (pow.f32 (exp.f32 ux) maxCos) (+.f32 1 (expm1.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 ux maxCos))) (+.f32 1 (expm1.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (/.f32 (pow.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) 3) (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (-.f32 1 ux) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 ux maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 ux maxCos (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 ux) 1 (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 maxCos ux (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux maxCos) 1 (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (*.f32 ux maxCos) 2) (/.f32 1 (+.f32 ux (fma.f32 ux maxCos -1))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 ux maxCos)) (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (cbrt.f32 (*.f32 ux maxCos)) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (cbrt.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 ux) 2) (*.f32 (cbrt.f32 ux) maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 maxCos) 2) (*.f32 (cbrt.f32 maxCos) ux) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (-.f32 1 ux)) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (*.f32 ux maxCos)) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 ux) (*.f32 (sqrt.f32 ux) maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 maxCos) (*.f32 (sqrt.f32 maxCos) ux) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (-.f32 1 ux)) (sqrt.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 (pow.f32 ux 3)) (/.f32 1 (+.f32 1 (fma.f32 ux ux ux))) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 1 (*.f32 ux ux)) (/.f32 1 (+.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1)))) (cbrt.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1))))) (cbrt.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4))) (sqrt.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2)) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1)))) (sqrt.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (*.f32 ux maxCos) 1) (/.f32 (*.f32 ux maxCos) (+.f32 ux (fma.f32 ux maxCos -1))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4)) 1) (/.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (+.f32 ux (fma.f32 ux maxCos -1))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (*.f32 ux ux) 1) (/.f32 (*.f32 maxCos maxCos) (+.f32 ux (fma.f32 ux maxCos -1))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 1 (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (*.f32 ux maxCos) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (/.f32 (*.f32 ux maxCos) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4)) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (/.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (*.f32 ux ux) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))) (/.f32 (*.f32 maxCos maxCos) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 1 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (*.f32 ux maxCos) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (/.f32 (*.f32 ux maxCos) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4)) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (/.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (*.f32 ux ux) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (/.f32 (*.f32 maxCos maxCos) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (fma.f32 ux maxCos (-.f32 1 ux)) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (/.f32 (pow.f32 (*.f32 ux maxCos) 2) (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3))) (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2)) (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux (pow.f32 (cbrt.f32 maxCos) 2)) (cbrt.f32 maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux (sqrt.f32 maxCos)) (sqrt.f32 maxCos) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 maxCos (pow.f32 (cbrt.f32 ux) 2)) (cbrt.f32 ux) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 maxCos (sqrt.f32 ux)) (sqrt.f32 ux) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (pow.f32 (*.f32 ux maxCos) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (pow.f32 (*.f32 ux maxCos) 2))) (cbrt.f32 (exp.f32 (pow.f32 (*.f32 ux maxCos) 2))))) (log.f32 (cbrt.f32 (exp.f32 (pow.f32 (*.f32 ux maxCos) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (*.f32 ux maxCos) 2)))) (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (*.f32 ux maxCos) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 ux maxCos) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (pow.f32 (*.f32 ux maxCos) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 ux (*.f32 maxCos (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 maxCos (*.f32 ux (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (*.f32 ux maxCos) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (*.f32 (cbrt.f32 (*.f32 ux maxCos)) (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4)) (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 ux maxCos)) (*.f32 (sqrt.f32 (*.f32 ux maxCos)) (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (sqrt.f32 (*.f32 ux maxCos)) 3) (sqrt.f32 (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 ux maxCos) ux) maxCos)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 ux maxCos) maxCos) ux)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 ux maxCos) (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2)) (cbrt.f32 (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 ux maxCos) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (pow.f32 (*.f32 ux maxCos) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (pow.f32 (*.f32 ux maxCos) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 ux maxCos) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (pow.f32 (*.f32 ux maxCos) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (pow.f32 (*.f32 ux maxCos) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log.f32 (*.f32 ux maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 2 (log.f32 (*.f32 ux maxCos))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 ux (fma.f32 ux maxCos -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 ux (fma.f32 ux maxCos -1)) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 ux (fma.f32 ux maxCos -1)) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 ux (fma.f32 ux maxCos -1)) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (+.f32 ux (fma.f32 ux maxCos -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (neg.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (fma.f32 ux maxCos -1) ux)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (fma.f32 ux maxCos -1) 1) ux)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (+.f32 ux (fma.f32 ux maxCos -1)))) (cbrt.f32 (exp.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))) (log.f32 (cbrt.f32 (exp.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (exp.f32 (+.f32 ux (fma.f32 ux maxCos -1))))) (log.f32 (sqrt.f32 (exp.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 ux (fma.f32 ux maxCos -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (/.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3)) (/.f32 1 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (-.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2)) (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (fma.f32 ux maxCos (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (pow.f32 (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) 2) (/.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (cbrt.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)))) (/.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (hypot.f32 (*.f32 ux maxCos) (sqrt.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) (neg.f32 (fma.f32 ux maxCos (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 6) (pow.f32 (-.f32 1 ux) 6)) (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (+.f32 (pow.f32 (*.f32 ux maxCos) 4) (+.f32 (pow.f32 (-.f32 1 ux) 4) (pow.f32 (*.f32 ux (*.f32 maxCos (-.f32 1 ux))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3)) (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 4) (pow.f32 (-.f32 1 ux) 4)) (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (+.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (*.f32 ux maxCos) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3))) (neg.f32 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (neg.f32 (-.f32 1 ux)) 3)) (+.f32 (pow.f32 (*.f32 ux maxCos) 2) (-.f32 (*.f32 (neg.f32 (-.f32 1 ux)) (neg.f32 (-.f32 1 ux))) (*.f32 (*.f32 ux maxCos) (neg.f32 (-.f32 1 ux))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (fma.f32 ux maxCos -1) 3) (pow.f32 ux 3)) (fma.f32 (fma.f32 ux maxCos -1) (fma.f32 ux maxCos -1) (-.f32 (*.f32 ux ux) (*.f32 (fma.f32 ux maxCos -1) ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (*.f32 (neg.f32 (-.f32 1 ux)) (neg.f32 (-.f32 1 ux)))) (-.f32 (*.f32 ux maxCos) (neg.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (fma.f32 (fma.f32 ux maxCos -1) (fma.f32 ux maxCos -1) (neg.f32 (*.f32 ux ux))) (-.f32 (fma.f32 ux maxCos -1) ux))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2)) (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (+.f32 ux (fma.f32 ux maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (/.f32 (+.f32 1 (expm1.f32 (*.f32 ux maxCos))) (exp.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (/.f32 (pow.f32 (exp.f32 ux) maxCos) (+.f32 1 (expm1.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (/.f32 (+.f32 1 (expm1.f32 (*.f32 ux maxCos))) (+.f32 1 (expm1.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (/.f32 (exp.f32 (fma.f32 ux maxCos -1)) (exp.f32 (neg.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (/.f32 (exp.f32 (fma.f32 ux maxCos -1)) (/.f32 1 (exp.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 ux) (exp.f32 (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 ux)) (exp.f32 (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 ux maxCos))) (exp.f32 (neg.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (pow.f32 (exp.f32 ux) maxCos) (/.f32 1 (exp.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 ux maxCos))) (/.f32 1 (exp.f32 (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 (neg.f32 (-.f32 1 ux))) (pow.f32 (exp.f32 ux) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (/.f32 1 (exp.f32 (-.f32 1 ux))) (pow.f32 (exp.f32 ux) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 (neg.f32 (-.f32 1 ux))) (+.f32 1 (expm1.f32 (*.f32 ux maxCos)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (/.f32 1 (exp.f32 (-.f32 1 ux))) (+.f32 1 (expm1.f32 (*.f32 ux maxCos)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 (fma.f32 ux maxCos -1)) (+.f32 1 (expm1.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 ux (fma.f32 ux maxCos -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 ux maxCos) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 ux maxCos) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (+.f32 ux (fma.f32 ux maxCos -1)) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (+.f32 ux (fma.f32 ux maxCos -1)) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (+.f32 ux (fma.f32 ux maxCos -1)) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (neg.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (fma.f32 ux maxCos -1) ux)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (fma.f32 ux maxCos -1) (neg.f32 (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 ux 1 (fma.f32 ux maxCos -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 ux maxCos (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 ux maxCos (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 maxCos ux (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 maxCos ux (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux maxCos) 1 (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux maxCos) 1 (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (/.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (/.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (/.f32 1 (fma.f32 ux maxCos (-.f32 1 ux))) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 1 (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 1 (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 1 (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (pow.f32 (+.f32 ux (fma.f32 ux maxCos -1)) 2)) (cbrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 ux maxCos)) (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 ux maxCos)) (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (cbrt.f32 (*.f32 ux maxCos)) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2) (cbrt.f32 (*.f32 ux maxCos)) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (neg.f32 (cbrt.f32 (-.f32 1 ux))) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 ux) (pow.f32 (cbrt.f32 ux) 2) (fma.f32 ux maxCos -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 ux) 2) (cbrt.f32 ux) (fma.f32 ux maxCos -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 ux) 2) (*.f32 (cbrt.f32 ux) maxCos) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 ux) 2) (*.f32 (cbrt.f32 ux) maxCos) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 maxCos) 2) (*.f32 (cbrt.f32 maxCos) ux) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 maxCos) 2) (*.f32 (cbrt.f32 maxCos) ux) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (sqrt.f32 (+.f32 ux (fma.f32 ux maxCos -1))) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (*.f32 ux maxCos)) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (*.f32 ux maxCos)) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 ux) (sqrt.f32 ux) (fma.f32 ux maxCos -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 ux) (*.f32 (sqrt.f32 ux) maxCos) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 ux) (*.f32 (sqrt.f32 ux) maxCos) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 maxCos) (*.f32 (sqrt.f32 maxCos) ux) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 maxCos) (*.f32 (sqrt.f32 maxCos) ux) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (-.f32 1 ux)) (neg.f32 (sqrt.f32 (-.f32 1 ux))) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3)) (/.f32 1 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2))) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3)) (/.f32 1 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2))) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 3) (pow.f32 (-.f32 1 ux) 3)) (/.f32 1 (fma.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)) (pow.f32 (*.f32 ux maxCos) 2))) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (fma.f32 ux maxCos -1) 1 ux)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (fma.f32 ux maxCos -1)) (cbrt.f32 (fma.f32 ux maxCos -1))) (cbrt.f32 (fma.f32 ux maxCos -1)) ux)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (fma.f32 ux maxCos -1)) (cbrt.f32 (fma.f32 ux maxCos -1))) (cbrt.f32 (fma.f32 ux maxCos -1)) (neg.f32 (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (neg.f32 (-.f32 1 ux))) (cbrt.f32 (neg.f32 (-.f32 1 ux)))) (cbrt.f32 (neg.f32 (-.f32 1 ux))) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4))) (sqrt.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2)) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (cbrt.f32 (pow.f32 (*.f32 ux maxCos) 4))) (sqrt.f32 (pow.f32 (cbrt.f32 (*.f32 ux maxCos)) 2)) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (fma.f32 ux maxCos -1)) (sqrt.f32 (fma.f32 ux maxCos -1)) ux)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (fma.f32 ux maxCos -1)) (sqrt.f32 (fma.f32 ux maxCos -1)) (neg.f32 (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (neg.f32 (-.f32 1 ux))) (sqrt.f32 (neg.f32 (-.f32 1 ux))) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (neg.f32 (sqrt.f32 (-.f32 1 ux))) (sqrt.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (neg.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2)) (cbrt.f32 (-.f32 1 ux)) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 -1 (-.f32 1 ux) (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 (sqrt.f32 (*.f32 ux maxCos)) 1) (-.f32 (sqrt.f32 (*.f32 ux maxCos)) 1) ux)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 (sqrt.f32 (*.f32 ux maxCos)) 1) (-.f32 (sqrt.f32 (*.f32 ux maxCos)) 1) (neg.f32 (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (-.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (fma.f32 (neg.f32 (-.f32 1 ux)) 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (-.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (fma.f32 (neg.f32 (cbrt.f32 (-.f32 1 ux))) (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (-.f32 (sqrt.f32 (*.f32 ux maxCos)) (sqrt.f32 (-.f32 1 ux))) (+.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux (pow.f32 (cbrt.f32 maxCos) 2)) (cbrt.f32 maxCos) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux (pow.f32 (cbrt.f32 maxCos) 2)) (cbrt.f32 maxCos) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux (sqrt.f32 maxCos)) (sqrt.f32 maxCos) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 ux (sqrt.f32 maxCos)) (sqrt.f32 maxCos) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 maxCos (pow.f32 (cbrt.f32 ux) 2)) (cbrt.f32 ux) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 maxCos (pow.f32 (cbrt.f32 ux) 2)) (cbrt.f32 ux) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 maxCos (sqrt.f32 ux)) (sqrt.f32 ux) (neg.f32 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 maxCos (sqrt.f32 ux)) (sqrt.f32 ux) (*.f32 (neg.f32 (-.f32 1 ux)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (+.f32 ux (fma.f32 ux maxCos -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (+.f32 ux (fma.f32 ux maxCos -1))) 1))))))

simplify53.0ms (1.8%)

Algorithm
egg-herbie
Rules
784×fma-def_binary32
701×times-frac_binary32
518×associate-/r*_binary32
497×associate-/l*_binary32
353×distribute-rgt-in_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01671854
16001665
221721532
Stop Event
node limit
Counts
393 → 368
Calls
Call 1
Inputs
1
(+.f32 1 (*.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(pow.f32 ux 2)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(pow.f32 ux 2)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
1
(+.f32 (*.f32 -1 (*.f32 ux (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))))) 1)
(+.f32 (*.f32 -1 (*.f32 ux (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))))) (+.f32 1 (*.f32 (-.f32 (*.f32 -1 (-.f32 (pow.f32 maxCos 2) 1)) (*.f32 (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))) (+.f32 1 maxCos))) (pow.f32 ux 2))))
(+.f32 (*.f32 -1 (*.f32 ux (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))))) (+.f32 1 (+.f32 (*.f32 (-.f32 (*.f32 -1 (-.f32 (pow.f32 maxCos 2) 1)) (*.f32 (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))) (+.f32 1 maxCos))) (*.f32 (pow.f32 ux 3) (+.f32 1 maxCos))) (*.f32 (-.f32 (*.f32 -1 (-.f32 (pow.f32 maxCos 2) 1)) (*.f32 (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))) (+.f32 1 maxCos))) (pow.f32 ux 2)))))
(/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos))
(-.f32 (+.f32 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos)) (*.f32 2 (/.f32 1 (+.f32 1 maxCos)))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2))))
(-.f32 (+.f32 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos)) (+.f32 (*.f32 -1 (/.f32 (+.f32 (/.f32 1 (+.f32 1 maxCos)) (*.f32 -1 (/.f32 (-.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2)))) (+.f32 1 maxCos)))) ux)) (*.f32 2 (/.f32 1 (+.f32 1 maxCos))))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2))))
(-.f32 (+.f32 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos)) (+.f32 (*.f32 -1 (/.f32 (+.f32 (/.f32 1 (+.f32 1 maxCos)) (*.f32 -1 (/.f32 (-.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2)))) (+.f32 1 maxCos)))) ux)) (+.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (+.f32 (/.f32 1 (pow.f32 (+.f32 1 maxCos) 2)) (*.f32 -1 (/.f32 (-.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2)))) (pow.f32 (+.f32 1 maxCos) 2)))) (pow.f32 ux 2)))))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2))))
(*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1)))
(+.f32 (*.f32 -1 (+.f32 (*.f32 2 (/.f32 1 (-.f32 (*.f32 -1 maxCos) 1))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2))))) (*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1))))
(+.f32 (*.f32 -1 (+.f32 (*.f32 2 (/.f32 1 (-.f32 (*.f32 -1 maxCos) 1))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2))))) (+.f32 (/.f32 1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) (+.f32 (*.f32 2 (/.f32 1 (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2)))) (+.f32 (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 3)))) (*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1)))))))
(+.f32 (*.f32 -1 (+.f32 (*.f32 2 (/.f32 1 (-.f32 (*.f32 -1 maxCos) 1))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2))))) (+.f32 (/.f32 1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) (+.f32 (*.f32 2 (/.f32 1 (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2)))) (+.f32 (*.f32 -1 (/.f32 (+.f32 (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 4))) (+.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2)) (*.f32 2 (/.f32 1 (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 3))))) (pow.f32 ux 2))) (+.f32 (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 3)))) (*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1))))))))
(*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1)))
(+.f32 (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux)) (pow.f32 (-.f32 ux 1) 2)) (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1))))
(+.f32 (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux)) (pow.f32 (-.f32 ux 1) 2)) (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1))) (*.f32 (pow.f32 maxCos 2) (-.f32 (/.f32 (pow.f32 ux 2) (-.f32 ux 1)) (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 ux 2)) (pow.f32 (-.f32 ux 1) 3))))))
(+.f32 (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux)) (pow.f32 (-.f32 ux 1) 2)) (+.f32 (*.f32 -1 (/.f32 (*.f32 (pow.f32 maxCos 3) (*.f32 ux (-.f32 (/.f32 (pow.f32 ux 2) (-.f32 ux 1)) (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 ux 2)) (pow.f32 (-.f32 ux 1) 3))))) (-.f32 ux 1))) (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1))) (*.f32 (pow.f32 maxCos 2) (-.f32 (/.f32 (pow.f32 ux 2) (-.f32 ux 1)) (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 ux 2)) (pow.f32 (-.f32 ux 1) 3)))))))
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux))) (+.f32 1 (*.f32 maxCos ux))) (+.f32 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) (*.f32 maxCos ux)) ux))
(-.f32 (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux))) (+.f32 1 (+.f32 (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux))) (*.f32 (pow.f32 maxCos 2) ux))) (*.f32 maxCos ux)))) (+.f32 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) (*.f32 maxCos ux)) ux))
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (+.f32 (*.f32 -1 (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux))) maxCos)) (*.f32 maxCos ux))) ux)
(-.f32 (+.f32 1 (+.f32 (*.f32 -1 (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux))) maxCos)) (+.f32 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux)))) (*.f32 (pow.f32 maxCos 2) ux)) (*.f32 maxCos ux)))) ux)
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
-1
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(*.f32 ux (+.f32 1 maxCos))
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1)))
(-.f32 (*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) 1)
(-.f32 (*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) 1)
(-.f32 (*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) 1)
(-.f32 ux 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(*.f32 maxCos ux)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(*.f32 maxCos ux)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
Outputs
1
(+.f32 1 (*.f32 -2 ux))
(fma.f32 -2 ux 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 -2 ux)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 -2 ux 1))
(fma.f32 ux (+.f32 -2 ux) 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 -2 ux)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 -2 ux 1))
(fma.f32 ux (+.f32 -2 ux) 1)
(pow.f32 ux 2)
(*.f32 ux ux)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (*.f32 -2 ux) (*.f32 ux ux))
(*.f32 ux (+.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 -2 ux)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 -2 ux 1))
(fma.f32 ux (+.f32 -2 ux) 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 -2 ux)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 -2 ux 1))
(fma.f32 ux (+.f32 -2 ux) 1)
(pow.f32 ux 2)
(*.f32 ux ux)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (*.f32 -2 ux) (*.f32 ux ux))
(*.f32 ux (+.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 -2 ux)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 -2 ux 1))
(fma.f32 ux (+.f32 -2 ux) 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 -2 ux)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 -2 ux 1))
(fma.f32 ux (+.f32 -2 ux) 1)
1
(+.f32 (*.f32 -1 (*.f32 ux (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))))) 1)
(fma.f32 -1 (*.f32 ux (+.f32 2 (neg.f32 (+.f32 1 maxCos)))) 1)
(fma.f32 (neg.f32 ux) (+.f32 1 (neg.f32 maxCos)) 1)
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (*.f32 -1 (*.f32 ux (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))))) (+.f32 1 (*.f32 (-.f32 (*.f32 -1 (-.f32 (pow.f32 maxCos 2) 1)) (*.f32 (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))) (+.f32 1 maxCos))) (pow.f32 ux 2))))
(+.f32 (fma.f32 -1 (*.f32 ux (+.f32 2 (neg.f32 (+.f32 1 maxCos)))) 1) (*.f32 (*.f32 ux ux) (-.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (*.f32 (+.f32 1 maxCos) (+.f32 2 (neg.f32 (+.f32 1 maxCos)))))))
(-.f32 (fma.f32 (*.f32 ux ux) (fma.f32 -1 (fma.f32 maxCos maxCos -1) (*.f32 (+.f32 1 (neg.f32 maxCos)) (-.f32 -1 maxCos))) 1) (*.f32 ux (+.f32 1 (neg.f32 maxCos))))
(-.f32 (fma.f32 (*.f32 ux ux) (-.f32 (*.f32 (-.f32 1 maxCos) (-.f32 -1 maxCos)) (fma.f32 maxCos maxCos -1)) 1) (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (*.f32 -1 (*.f32 ux (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))))) (+.f32 1 (+.f32 (*.f32 (-.f32 (*.f32 -1 (-.f32 (pow.f32 maxCos 2) 1)) (*.f32 (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))) (+.f32 1 maxCos))) (*.f32 (pow.f32 ux 3) (+.f32 1 maxCos))) (*.f32 (-.f32 (*.f32 -1 (-.f32 (pow.f32 maxCos 2) 1)) (*.f32 (+.f32 2 (*.f32 -1 (+.f32 1 maxCos))) (+.f32 1 maxCos))) (pow.f32 ux 2)))))
(+.f32 (fma.f32 -1 (*.f32 ux (+.f32 2 (neg.f32 (+.f32 1 maxCos)))) 1) (*.f32 (-.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (*.f32 (+.f32 1 maxCos) (+.f32 2 (neg.f32 (+.f32 1 maxCos))))) (+.f32 (*.f32 (+.f32 1 maxCos) (pow.f32 ux 3)) (*.f32 ux ux))))
(-.f32 (fma.f32 (fma.f32 -1 (fma.f32 maxCos maxCos -1) (*.f32 (+.f32 1 (neg.f32 maxCos)) (-.f32 -1 maxCos))) (fma.f32 (+.f32 1 maxCos) (pow.f32 ux 3) (*.f32 ux ux)) 1) (*.f32 ux (+.f32 1 (neg.f32 maxCos))))
(fma.f32 (-.f32 (*.f32 (-.f32 1 maxCos) (-.f32 -1 maxCos)) (fma.f32 maxCos maxCos -1)) (*.f32 (+.f32 (fma.f32 ux maxCos ux) 1) (*.f32 ux ux)) (-.f32 1 (*.f32 ux (-.f32 1 maxCos))))
(/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos))
(/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (+.f32 1 maxCos) ux))
(/.f32 (fma.f32 maxCos maxCos -1) (/.f32 (+.f32 1 maxCos) ux))
(*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (+.f32 1 maxCos)) ux)
(-.f32 (+.f32 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos)) (*.f32 2 (/.f32 1 (+.f32 1 maxCos)))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (+.f32 1 maxCos) ux)) (-.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (/.f32 2 (+.f32 1 maxCos)) (+.f32 (/.f32 (fma.f32 maxCos maxCos -1) (/.f32 (+.f32 1 maxCos) ux)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (/.f32 -2 (-.f32 -1 maxCos)) (*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (+.f32 1 maxCos)) (-.f32 ux (/.f32 -1 (+.f32 1 maxCos)))))
(-.f32 (+.f32 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos)) (+.f32 (*.f32 -1 (/.f32 (+.f32 (/.f32 1 (+.f32 1 maxCos)) (*.f32 -1 (/.f32 (-.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2)))) (+.f32 1 maxCos)))) ux)) (*.f32 2 (/.f32 1 (+.f32 1 maxCos))))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (+.f32 1 maxCos) ux)) (-.f32 (fma.f32 -1 (/.f32 (+.f32 (/.f32 1 (+.f32 1 maxCos)) (neg.f32 (/.f32 (-.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (+.f32 1 maxCos) 2))) (+.f32 1 maxCos)))) ux) (/.f32 2 (+.f32 1 maxCos))) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (-.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (-.f32 (/.f32 1 (+.f32 1 maxCos)) (/.f32 (+.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2))) (+.f32 1 maxCos))) ux)) (+.f32 (/.f32 (fma.f32 maxCos maxCos -1) (/.f32 (+.f32 1 maxCos) ux)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (-.f32 (/.f32 -2 (-.f32 -1 maxCos)) (/.f32 (-.f32 (/.f32 1 (+.f32 1 maxCos)) (+.f32 (/.f32 2 (pow.f32 (+.f32 1 maxCos) 2)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 3)))) ux)) (*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (+.f32 1 maxCos)) (-.f32 ux (/.f32 -1 (+.f32 1 maxCos)))))
(-.f32 (+.f32 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (+.f32 1 maxCos)) (+.f32 (*.f32 -1 (/.f32 (+.f32 (/.f32 1 (+.f32 1 maxCos)) (*.f32 -1 (/.f32 (-.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2)))) (+.f32 1 maxCos)))) ux)) (+.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (+.f32 (/.f32 1 (pow.f32 (+.f32 1 maxCos) 2)) (*.f32 -1 (/.f32 (-.f32 (*.f32 2 (/.f32 1 (+.f32 1 maxCos))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2)))) (pow.f32 (+.f32 1 maxCos) 2)))) (pow.f32 ux 2)))))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (+.f32 1 maxCos) ux)) (-.f32 (+.f32 (fma.f32 -1 (/.f32 (+.f32 (/.f32 1 (+.f32 1 maxCos)) (neg.f32 (/.f32 (-.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (+.f32 1 maxCos) 2))) (+.f32 1 maxCos)))) ux) (/.f32 2 (+.f32 1 maxCos))) (neg.f32 (/.f32 (+.f32 (/.f32 1 (pow.f32 (+.f32 1 maxCos) 2)) (neg.f32 (/.f32 (-.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (+.f32 1 maxCos) 2))) (pow.f32 (+.f32 1 maxCos) 2)))) (*.f32 ux ux)))) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2)) (+.f32 (-.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (-.f32 (/.f32 1 (pow.f32 (+.f32 1 maxCos) 2)) (/.f32 (+.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2))) (pow.f32 (+.f32 1 maxCos) 2))) (*.f32 ux ux))) (-.f32 (/.f32 (fma.f32 maxCos maxCos -1) (/.f32 (+.f32 1 maxCos) ux)) (/.f32 (-.f32 (/.f32 1 (+.f32 1 maxCos)) (/.f32 (+.f32 (/.f32 2 (+.f32 1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2))) (+.f32 1 maxCos))) ux))))
(+.f32 (+.f32 (/.f32 -2 (-.f32 -1 maxCos)) (+.f32 (/.f32 (+.f32 (+.f32 (/.f32 2 (pow.f32 (+.f32 1 maxCos) 3)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 4))) (/.f32 -1 (pow.f32 (+.f32 1 maxCos) 2))) (*.f32 ux ux)) (/.f32 (+.f32 (+.f32 (/.f32 2 (pow.f32 (+.f32 1 maxCos) 2)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 3))) (/.f32 -1 (+.f32 1 maxCos))) ux))) (*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (+.f32 1 maxCos)) (-.f32 ux (/.f32 -1 (+.f32 1 maxCos)))))
(*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1)))
(neg.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (fma.f32 -1 maxCos -1) ux)))
(/.f32 (neg.f32 (fma.f32 maxCos maxCos -1)) (/.f32 (-.f32 -1 maxCos) ux))
(+.f32 (*.f32 -1 (+.f32 (*.f32 2 (/.f32 1 (-.f32 (*.f32 -1 maxCos) 1))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2))))) (*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1))))
(fma.f32 -1 (+.f32 (/.f32 2 (fma.f32 -1 maxCos -1)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (fma.f32 -1 maxCos -1) 2))) (neg.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (fma.f32 -1 maxCos -1) ux))))
(-.f32 (/.f32 (neg.f32 (fma.f32 maxCos maxCos -1)) (/.f32 (-.f32 -1 maxCos) ux)) (-.f32 (/.f32 2 (-.f32 -1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (-.f32 -1 maxCos) 2))))
(+.f32 (/.f32 -2 (-.f32 -1 maxCos)) (neg.f32 (*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (-.f32 -1 maxCos)) (+.f32 (/.f32 1 (+.f32 1 maxCos)) ux))))
(+.f32 (*.f32 -1 (+.f32 (*.f32 2 (/.f32 1 (-.f32 (*.f32 -1 maxCos) 1))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2))))) (+.f32 (/.f32 1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) (+.f32 (*.f32 2 (/.f32 1 (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2)))) (+.f32 (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 3)))) (*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1)))))))
(fma.f32 -1 (+.f32 (/.f32 2 (fma.f32 -1 maxCos -1)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (fma.f32 -1 maxCos -1) 2))) (+.f32 (/.f32 1 (*.f32 ux (fma.f32 -1 maxCos -1))) (+.f32 (/.f32 2 (*.f32 ux (pow.f32 (fma.f32 -1 maxCos -1) 2))) (fma.f32 -1 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (*.f32 ux (pow.f32 (fma.f32 -1 maxCos -1) 3))) (neg.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (fma.f32 -1 maxCos -1) ux)))))))
(-.f32 (+.f32 (/.f32 1 (*.f32 ux (-.f32 -1 maxCos))) (-.f32 (-.f32 (/.f32 2 (*.f32 ux (pow.f32 (-.f32 -1 maxCos) 2))) (/.f32 (fma.f32 maxCos maxCos -1) (*.f32 ux (pow.f32 (-.f32 -1 maxCos) 3)))) (*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (-.f32 -1 maxCos)) ux))) (-.f32 (/.f32 2 (-.f32 -1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (-.f32 -1 maxCos) 2))))
(+.f32 (-.f32 (+.f32 (/.f32 -2 (-.f32 -1 maxCos)) (+.f32 (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2)) (/.f32 -1 (fma.f32 ux maxCos ux)))) (fma.f32 (/.f32 (fma.f32 maxCos maxCos -1) (-.f32 -1 maxCos)) ux (/.f32 (fma.f32 maxCos maxCos -1) (*.f32 ux (pow.f32 (-.f32 -1 maxCos) 3))))) (/.f32 2 (*.f32 ux (pow.f32 (+.f32 1 maxCos) 2))))
(+.f32 (*.f32 -1 (+.f32 (*.f32 2 (/.f32 1 (-.f32 (*.f32 -1 maxCos) 1))) (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2))))) (+.f32 (/.f32 1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) (+.f32 (*.f32 2 (/.f32 1 (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2)))) (+.f32 (*.f32 -1 (/.f32 (+.f32 (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 4))) (+.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 2)) (*.f32 2 (/.f32 1 (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 3))))) (pow.f32 ux 2))) (+.f32 (*.f32 -1 (/.f32 (-.f32 (pow.f32 maxCos 2) 1) (*.f32 ux (pow.f32 (-.f32 (*.f32 -1 maxCos) 1) 3)))) (*.f32 -1 (/.f32 (*.f32 (-.f32 (pow.f32 maxCos 2) 1) ux) (-.f32 (*.f32 -1 maxCos) 1))))))))
(fma.f32 -1 (+.f32 (/.f32 2 (fma.f32 -1 maxCos -1)) (/.f32 (neg.f32 (+.f32 (*.f32 maxCos maxCos) -1)) (pow.f32 (fma.f32 -1 maxCos -1) 2))) (+.f32 (/.f32 1 (*.f32 ux (fma.f32 -1 maxCos -1))) (+.f32 (/.f32 2 (*.f32 ux (pow.f32 (fma.f32 -1 maxCos -1) 2))) (fma.f32 -1 (/.f32 (fma.f32 -1 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (pow.f32 (fma.f32 -1 maxCos -1) 4)) (+.f32 (/.f32 1 (pow.f32 (fma.f32 -1 maxCos -1) 2)) (/.f32 2 (pow.f32 (fma.f32 -1 maxCos -1) 3)))) (*.f32 ux ux)) (fma.f32 -1 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (*.f32 ux (pow.f32 (fma.f32 -1 maxCos -1) 3))) (neg.f32 (/.f32 (+.f32 (*.f32 maxCos maxCos) -1) (/.f32 (fma.f32 -1 maxCos -1) ux))))))))
(-.f32 (+.f32 (/.f32 1 (*.f32 ux (-.f32 -1 maxCos))) (+.f32 (-.f32 (-.f32 (/.f32 2 (*.f32 ux (pow.f32 (-.f32 -1 maxCos) 2))) (/.f32 (fma.f32 maxCos maxCos -1) (*.f32 ux (pow.f32 (-.f32 -1 maxCos) 3)))) (*.f32 (/.f32 (fma.f32 maxCos maxCos -1) (-.f32 -1 maxCos)) ux)) (/.f32 (neg.f32 (-.f32 (+.f32 (/.f32 1 (pow.f32 (-.f32 -1 maxCos) 2)) (/.f32 2 (pow.f32 (-.f32 -1 maxCos) 3))) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (-.f32 -1 maxCos) 4)))) (*.f32 ux ux)))) (-.f32 (/.f32 2 (-.f32 -1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (-.f32 -1 maxCos) 2))))
(+.f32 (/.f32 -1 (fma.f32 ux maxCos ux)) (+.f32 (-.f32 (+.f32 (/.f32 2 (*.f32 ux (pow.f32 (+.f32 1 maxCos) 2))) (/.f32 (+.f32 (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 4)) (+.f32 (/.f32 2 (pow.f32 (+.f32 1 maxCos) 3)) (/.f32 -1 (pow.f32 (+.f32 1 maxCos) 2)))) (*.f32 ux ux))) (fma.f32 (/.f32 (fma.f32 maxCos maxCos -1) (-.f32 -1 maxCos)) ux (/.f32 (fma.f32 maxCos maxCos -1) (*.f32 ux (pow.f32 (-.f32 -1 maxCos) 3))))) (+.f32 (/.f32 -2 (-.f32 -1 maxCos)) (/.f32 (fma.f32 maxCos maxCos -1) (pow.f32 (+.f32 1 maxCos) 2)))))
(*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1)))
(neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)))
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
(+.f32 (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux)) (pow.f32 (-.f32 ux 1) 2)) (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1))))
(+.f32 (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 (pow.f32 (+.f32 ux -1) 2) (*.f32 ux maxCos))))
(-.f32 (/.f32 (*.f32 ux maxCos) (/.f32 (pow.f32 (+.f32 ux -1) 2) (pow.f32 (-.f32 1 ux) 2))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)))
(*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)) (+.f32 -1 (/.f32 maxCos (/.f32 (+.f32 ux -1) ux))))
(+.f32 (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux)) (pow.f32 (-.f32 ux 1) 2)) (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1))) (*.f32 (pow.f32 maxCos 2) (-.f32 (/.f32 (pow.f32 ux 2) (-.f32 ux 1)) (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 ux 2)) (pow.f32 (-.f32 ux 1) 3))))))
(+.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 (pow.f32 (+.f32 ux -1) 2) (*.f32 ux maxCos))) (fma.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)) (*.f32 (*.f32 maxCos maxCos) (-.f32 (/.f32 (*.f32 ux ux) (+.f32 ux -1)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 (pow.f32 (+.f32 ux -1) 3) (*.f32 ux ux)))))))
(+.f32 (/.f32 (*.f32 ux maxCos) (/.f32 (pow.f32 (+.f32 ux -1) 2) (pow.f32 (-.f32 1 ux) 2))) (fma.f32 (*.f32 maxCos maxCos) (-.f32 (/.f32 ux (/.f32 (+.f32 ux -1) ux)) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (+.f32 ux -1) 3)) (*.f32 ux ux))) (/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))))
(fma.f32 maxCos (*.f32 maxCos (-.f32 (*.f32 (/.f32 ux (+.f32 ux -1)) ux) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (+.f32 ux -1) 3)) (*.f32 ux ux)))) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)) (+.f32 -1 (/.f32 maxCos (/.f32 (+.f32 ux -1) ux)))))
(+.f32 (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux)) (pow.f32 (-.f32 ux 1) 2)) (+.f32 (*.f32 -1 (/.f32 (*.f32 (pow.f32 maxCos 3) (*.f32 ux (-.f32 (/.f32 (pow.f32 ux 2) (-.f32 ux 1)) (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 ux 2)) (pow.f32 (-.f32 ux 1) 3))))) (-.f32 ux 1))) (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 ux 1))) (*.f32 (pow.f32 maxCos 2) (-.f32 (/.f32 (pow.f32 ux 2) (-.f32 ux 1)) (/.f32 (*.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 ux 2)) (pow.f32 (-.f32 ux 1) 3)))))))
(+.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 (pow.f32 (+.f32 ux -1) 2) (*.f32 ux maxCos))) (fma.f32 -1 (/.f32 (*.f32 (pow.f32 maxCos 3) (*.f32 ux (-.f32 (/.f32 (*.f32 ux ux) (+.f32 ux -1)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 (pow.f32 (+.f32 ux -1) 3) (*.f32 ux ux)))))) (+.f32 ux -1)) (fma.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)) (*.f32 (*.f32 maxCos maxCos) (-.f32 (/.f32 (*.f32 ux ux) (+.f32 ux -1)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 (pow.f32 (+.f32 ux -1) 3) (*.f32 ux ux))))))))
(+.f32 (/.f32 (*.f32 ux maxCos) (/.f32 (pow.f32 (+.f32 ux -1) 2) (pow.f32 (-.f32 1 ux) 2))) (-.f32 (fma.f32 (*.f32 maxCos maxCos) (-.f32 (/.f32 ux (/.f32 (+.f32 ux -1) ux)) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (+.f32 ux -1) 3)) (*.f32 ux ux))) (/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))) (*.f32 (/.f32 (pow.f32 maxCos 3) (+.f32 ux -1)) (*.f32 ux (-.f32 (/.f32 ux (/.f32 (+.f32 ux -1) ux)) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (+.f32 ux -1) 3)) (*.f32 ux ux)))))))
(-.f32 (fma.f32 maxCos (*.f32 maxCos (-.f32 (*.f32 (/.f32 ux (+.f32 ux -1)) ux) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (+.f32 ux -1) 3)) (*.f32 ux ux)))) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 ux -1)) (+.f32 -1 (/.f32 maxCos (/.f32 (+.f32 ux -1) ux))))) (*.f32 (/.f32 (pow.f32 maxCos 3) (+.f32 ux -1)) (*.f32 ux (-.f32 (*.f32 (/.f32 ux (+.f32 ux -1)) ux) (*.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (pow.f32 (+.f32 ux -1) 3)) (*.f32 ux ux))))))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 (fma.f32 ux maxCos 1) ux)
(-.f32 (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux))) (+.f32 1 (*.f32 maxCos ux))) (+.f32 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) (*.f32 maxCos ux)) ux))
(-.f32 (fma.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos)) (+.f32 1 (*.f32 ux maxCos))) (+.f32 ux (*.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux))))
(-.f32 (-.f32 (fma.f32 ux maxCos 1) (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos))) (fma.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux) ux))
(+.f32 (fma.f32 ux maxCos (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) maxCos)) (-.f32 1 ux))
(-.f32 (+.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 maxCos ux))) (+.f32 1 (+.f32 (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 (*.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux))) (*.f32 (pow.f32 maxCos 2) ux))) (*.f32 maxCos ux)))) (+.f32 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) (*.f32 maxCos ux)) ux))
(-.f32 (fma.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos)) (+.f32 1 (fma.f32 -1 (/.f32 (+.f32 ux -1) (/.f32 (*.f32 ux (*.f32 maxCos maxCos)) (-.f32 (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) (/.f32 (+.f32 ux -1) (/.f32 ux (-.f32 1 ux)))))) (*.f32 ux maxCos)))) (+.f32 ux (*.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux))))
(-.f32 (+.f32 (-.f32 (fma.f32 ux maxCos 1) (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos))) (/.f32 (neg.f32 (+.f32 ux -1)) (/.f32 ux (/.f32 (-.f32 (/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) ux) (*.f32 (/.f32 (+.f32 ux -1) ux) (-.f32 1 ux))) (*.f32 maxCos maxCos))))) (fma.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux) ux))
(+.f32 (fma.f32 ux maxCos (fma.f32 (/.f32 (+.f32 ux -1) (*.f32 maxCos maxCos)) (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) ux) (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) maxCos))) (-.f32 1 ux))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 (fma.f32 ux maxCos 1) ux)
(-.f32 (+.f32 1 (+.f32 (*.f32 -1 (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux))) maxCos)) (*.f32 maxCos ux))) ux)
(-.f32 (fma.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos)) (+.f32 1 (*.f32 ux maxCos))) (+.f32 ux (*.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux))))
(-.f32 (-.f32 (fma.f32 ux maxCos 1) (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos))) (fma.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux) ux))
(+.f32 (fma.f32 ux maxCos (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) maxCos)) (-.f32 1 ux))
(-.f32 (+.f32 1 (+.f32 (*.f32 -1 (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux))) maxCos)) (+.f32 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (*.f32 -1 (/.f32 (*.f32 (-.f32 ux 1) (-.f32 1 ux)) ux)))) (*.f32 (pow.f32 maxCos 2) ux)) (*.f32 maxCos ux)))) ux)
(-.f32 (fma.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos)) (+.f32 1 (fma.f32 -1 (/.f32 (+.f32 ux -1) (/.f32 (*.f32 ux (*.f32 maxCos maxCos)) (-.f32 (neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) (/.f32 (+.f32 ux -1) (/.f32 ux (-.f32 1 ux)))))) (*.f32 ux maxCos)))) (+.f32 ux (*.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux))))
(-.f32 (+.f32 (-.f32 (fma.f32 ux maxCos 1) (/.f32 (pow.f32 (-.f32 1 ux) 2) (*.f32 ux maxCos))) (/.f32 (neg.f32 (+.f32 ux -1)) (/.f32 ux (/.f32 (-.f32 (/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) ux) (*.f32 (/.f32 (+.f32 ux -1) ux) (-.f32 1 ux))) (*.f32 maxCos maxCos))))) (fma.f32 (/.f32 (+.f32 ux -1) maxCos) (/.f32 (-.f32 1 ux) ux) ux))
(+.f32 (fma.f32 ux maxCos (fma.f32 (/.f32 (+.f32 ux -1) (*.f32 maxCos maxCos)) (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) ux) (/.f32 (-.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) ux) (/.f32 (pow.f32 (-.f32 1 ux) 2) ux)) maxCos))) (-.f32 1 ux))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
(*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))
(*.f32 (*.f32 ux ux) (*.f32 maxCos maxCos))
(*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos))
-1
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(*.f32 ux (+.f32 1 maxCos))
(+.f32 ux (*.f32 ux maxCos))
(fma.f32 ux maxCos ux)
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (*.f32 ux (+.f32 1 maxCos)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1)))
(+.f32 ux (*.f32 ux maxCos))
(fma.f32 ux maxCos ux)
(-.f32 (*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (*.f32 -1 (*.f32 ux (-.f32 (*.f32 -1 maxCos) 1))) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 ux 1)
(+.f32 ux -1)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))
(-.f32 (+.f32 ux (*.f32 maxCos ux)) 1)
(fma.f32 ux (+.f32 1 maxCos) -1)
(+.f32 ux (fma.f32 ux maxCos -1))
(fma.f32 ux maxCos (+.f32 ux -1))

localize17.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (-.f32 maxCos 1) ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.1b
(*.f32 (-.f32 maxCos 1) ux)

series5.0ms (0.2%)

Counts
2 → 27
Calls

12 calls:

TimeVariablePointExpression
1.0ms
maxCos
@-inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
maxCos
@0
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
ux
@-inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
ux
@inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
ux
@0
(*.f32 (-.f32 maxCos 1) ux)

rewrite45.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
799×pow1_binary32
743×add-log-exp_binary32
742×log1p-expm1-u_binary32
742×expm1-log1p-u_binary32
729×add-exp-log_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0717
115215
2204215
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos ux) (*.f32 -1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) (*.f32 ux -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (fma.f32 (+.f32 maxCos -1) ux 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (pow.f32 maxCos 3) -1) ux) (fma.f32 maxCos maxCos (+.f32 maxCos 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (fma.f32 maxCos maxCos -1) ux) (+.f32 maxCos 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 ux (+.f32 (pow.f32 maxCos 3) -1)) (fma.f32 maxCos maxCos (+.f32 maxCos 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 ux (fma.f32 maxCos maxCos -1)) (+.f32 maxCos 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (+.f32 maxCos -1) ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (+.f32 maxCos -1) ux)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (+.f32 maxCos -1) ux)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 ux) (+.f32 maxCos -1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (+.f32 maxCos -1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (+.f32 maxCos -1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (+.f32 maxCos -1) ux)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (fma.f32 (+.f32 maxCos -1) ux 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 1 (-.f32 1 (*.f32 (+.f32 maxCos -1) ux))) (/.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) (-.f32 1 (*.f32 (+.f32 maxCos -1) ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (fma.f32 (+.f32 maxCos -1) ux 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (fma.f32 (+.f32 maxCos -1) ux 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)) (pow.f32 (cbrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)) 2) (cbrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)) (sqrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3)) (/.f32 1 (+.f32 1 (-.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) (*.f32 (+.f32 maxCos -1) ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2)) (/.f32 1 (-.f32 1 (*.f32 (+.f32 maxCos -1) ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (+.f32 1 (-.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) (*.f32 (+.f32 maxCos -1) ux))) (+.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (-.f32 1 (*.f32 (+.f32 maxCos -1) ux)) (-.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3)) (+.f32 1 (-.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) (*.f32 (+.f32 maxCos -1) ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3)) (+.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) (-.f32 1 (*.f32 (+.f32 maxCos -1) ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2)) (-.f32 1 (*.f32 (+.f32 maxCos -1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (+.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 3))) (neg.f32 (+.f32 1 (-.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) (*.f32 (+.f32 maxCos -1) ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 1 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2))) (neg.f32 (-.f32 1 (*.f32 (+.f32 maxCos -1) ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 (+.f32 maxCos -1) ux) 2) 1) (-.f32 (*.f32 (+.f32 maxCos -1) ux) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (fma.f32 (+.f32 maxCos -1) ux 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (fma.f32 (+.f32 maxCos -1) ux 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (fma.f32 (+.f32 maxCos -1) ux 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (fma.f32 (+.f32 maxCos -1) ux 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (fma.f32 (+.f32 maxCos -1) ux 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (fma.f32 (+.f32 maxCos -1) ux 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (fma.f32 (+.f32 maxCos -1) ux 1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (fma.f32 (+.f32 maxCos -1) ux 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 (+.f32 maxCos -1) ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (+.f32 maxCos -1) ux 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 ux (+.f32 maxCos -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 (+.f32 maxCos -1) ux)) 2) (cbrt.f32 (*.f32 (+.f32 maxCos -1) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 (+.f32 maxCos -1) ux)) (sqrt.f32 (*.f32 (+.f32 maxCos -1) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log1p.f32 (*.f32 (+.f32 maxCos -1) ux)))))))

simplify26.0ms (0.9%)

Algorithm
egg-herbie
Rules
186×fma-def_binary32
186×fma-neg_binary32
59×cancel-sign-sub-inv_binary32
32×sub-neg_binary32
31×associate--r+_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013201
131173
246173
364173
496173
5155173
6311173
7522173
8733173
9822173
10846173
11847173
Stop Event
saturated
Counts
76 → 61
Calls
Call 1
Inputs
(*.f32 -1 ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
1
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 (-.f32 maxCos 1) ux)
Outputs
(*.f32 -1 ux)
(neg.f32 ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (fma.f32 -1 ux 1) (*.f32 ux maxCos))
(-.f32 (fma.f32 ux maxCos 1) ux)
(fma.f32 ux maxCos (-.f32 1 ux))
1
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 ux maxCos) ux)

localize6.0ms (0.2%)

eval202.0ms (7%)

Compiler

Compiled 10496 to 6780 computations (35.4% saved)

prune62.0ms (2.2%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New4272429
Fresh101
Picked011
Done123
Total4295434
Error
0b
Counts
434 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
8.4b
1
0.5b
(-.f32 1 ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 43 to 35 computations (18.6% saved)

localize25.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
0.4b
(pow.f32 (-.f32 1 ux) 2)
0.4b
(pow.f32 (-.f32 1 ux) 2)
0.4b
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
ux
@0
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
1.0ms
ux
@inf
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
0.0ms
ux
@-inf
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))

rewrite45.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
969×pow1_binary32
905×add-log-exp_binary32
903×log1p-expm1-u_binary32
903×expm1-log1p-u_binary32
107×add-sqr-sqrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01015
122013
2294213
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 0 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 0 (+.f32 ux -1)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 1 ux) (*.f32 (-.f32 1 ux) (/.f32 -1 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 -1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) (pow.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) 2) (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (*.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (/.f32 -1 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) (sqrt.f32 (-.f32 1 ux))) (/.f32 (-.f32 1 ux) (sqrt.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (-.f32 1 ux)) (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) 1) (/.f32 (-.f32 1 ux) (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (cbrt.f32 (pow.f32 (+.f32 ux -1) 2))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) (cbrt.f32 (pow.f32 (+.f32 ux -1) 2))) (/.f32 (-.f32 1 ux) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (sqrt.f32 (+.f32 ux -1))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) 1) (/.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (cbrt.f32 (pow.f32 (+.f32 ux -1) 2))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (cbrt.f32 (pow.f32 (+.f32 ux -1) 2))) (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (sqrt.f32 (+.f32 ux -1))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (sqrt.f32 (+.f32 ux -1))) (/.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 -1 (pow.f32 ux 3))) (fma.f32 ux ux (-.f32 1 (neg.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (fma.f32 ux ux -1)) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (-.f32 1 ux) (sqrt.f32 (-.f32 1 ux))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (-.f32 1 ux) (pow.f32 (-.f32 1 ux) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 4) (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (/.f32 (pow.f32 (pow.f32 (-.f32 1 ux) 2) 3) (pow.f32 (+.f32 ux -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (-.f32 (*.f32 2 (log1p.f32 (neg.f32 ux))) (log1p.f32 (neg.f32 ux))))))))

simplify9.0ms (0.3%)

Algorithm
egg-herbie
Rules
sub-neg_binary32
fma-def_binary32
+-commutative_binary32
associate-+l-_binary32
associate--r+_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0652
11243
21543
31943
42543
53543
64643
75843
86143
Stop Event
saturated
Counts
51 → 44
Calls
Call 1
Inputs
1
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(*.f32 -1 ux)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(*.f32 -1 ux)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
Outputs
1
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(*.f32 -1 ux)
(neg.f32 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(*.f32 -1 ux)
(neg.f32 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)

eval35.0ms (1.2%)

Compiler

Compiled 1543 to 1173 computations (24% saved)

prune16.0ms (0.5%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New982100
Fresh101
Picked101
Done033
Total1005105
Error
0b
Counts
105 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.5b
(-.f32 1 ux)
8.4b
1
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 45 to 36 computations (20% saved)

localize25.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
0.4b
(*.f32 (-.f32 1 ux) (-.f32 1 ux))
0.4b
(*.f32 (-.f32 1 ux) (-.f32 1 ux))
0.4b
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
ux
@0
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
0.0ms
ux
@inf
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
0.0ms
ux
@inf
(*.f32 (-.f32 1 ux) (-.f32 1 ux))
0.0ms
ux
@-inf
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
0.0ms
ux
@-inf
(*.f32 (-.f32 1 ux) (-.f32 1 ux))

rewrite50.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
949×pow1_binary32
888×add-log-exp_binary32
886×log1p-expm1-u_binary32
886×expm1-log1p-u_binary32
100×add-sqr-sqrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0922
119920
2289820
Stop Event
node limit
Counts
2 → 80
Calls
Call 1
Inputs
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
(*.f32 (-.f32 1 ux) (-.f32 1 ux))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 0 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 0 (+.f32 ux -1)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 1 ux) (*.f32 (neg.f32 (-.f32 1 ux)) (/.f32 1 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 1 ux) (*.f32 (-.f32 1 ux) (/.f32 1 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 1 (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (-.f32 1 ux) 2) (/.f32 1 (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) (pow.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) 2) (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (*.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (/.f32 1 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) (sqrt.f32 (+.f32 ux -1))) (/.f32 (-.f32 1 ux) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) (sqrt.f32 (+.f32 ux -1))) (/.f32 (neg.f32 (-.f32 1 ux)) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (+.f32 ux -1)) (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (neg.f32 (-.f32 1 ux)) (*.f32 (-.f32 1 ux) (/.f32 1 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) 1) (/.f32 (neg.f32 (-.f32 1 ux)) (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) 1) (/.f32 (-.f32 1 ux) (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) 1) (/.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (neg.f32 (-.f32 1 ux)) 1) (/.f32 (-.f32 1 ux) (+.f32 ux -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (pow.f32 (cbrt.f32 (+.f32 ux -1)) 2)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) (pow.f32 (cbrt.f32 (+.f32 ux -1)) 2)) (/.f32 (neg.f32 (-.f32 1 ux)) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 1 ux) (pow.f32 (cbrt.f32 (+.f32 ux -1)) 2)) (/.f32 (-.f32 1 ux) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (pow.f32 (cbrt.f32 (+.f32 ux -1)) 2)) (/.f32 (pow.f32 (-.f32 1 ux) 2) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (pow.f32 (cbrt.f32 (+.f32 ux -1)) 2)) (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (neg.f32 (-.f32 1 ux)) (pow.f32 (cbrt.f32 (+.f32 ux -1)) 2)) (/.f32 (-.f32 1 ux) (cbrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (sqrt.f32 (+.f32 ux -1))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (neg.f32 (-.f32 1 ux)) (sqrt.f32 (+.f32 ux -1))) (/.f32 (-.f32 1 ux) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (sqrt.f32 (+.f32 ux -1))) (/.f32 (pow.f32 (-.f32 1 ux) 2) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (cbrt.f32 (pow.f32 (-.f32 1 ux) 4)) (sqrt.f32 (+.f32 ux -1))) (/.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) (sqrt.f32 (+.f32 ux -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (+.f32 -1 (pow.f32 ux 3))) (fma.f32 ux ux (-.f32 1 (neg.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (fma.f32 ux ux -1)) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (-.f32 1 ux) (sqrt.f32 (+.f32 ux -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (-.f32 1 ux) (pow.f32 (-.f32 1 ux) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (/.f32 (pow.f32 (-.f32 1 ux) 4) (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (/.f32 (pow.f32 (pow.f32 (-.f32 1 ux) 2) 3) (pow.f32 (+.f32 ux -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (/.f32 (pow.f32 (-.f32 1 ux) 2) (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (-.f32 (*.f32 (log1p.f32 (neg.f32 ux)) 2) (log1p.f32 (neg.f32 ux))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 1 ux) (*.f32 (neg.f32 ux) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 1 ux) (*.f32 (-.f32 1 ux) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (neg.f32 (-.f32 1 ux)) (*.f32 (neg.f32 ux) (neg.f32 (-.f32 1 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (neg.f32 (-.f32 1 ux)) 1) (*.f32 (neg.f32 (-.f32 1 ux)) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 0 (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (pow.f32 (-.f32 1 ux) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (-.f32 1 (*.f32 ux ux))) (*.f32 (+.f32 1 ux) (+.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (-.f32 1 (pow.f32 ux 3))) (*.f32 (+.f32 1 (fma.f32 ux ux ux)) (+.f32 1 (fma.f32 ux ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (-.f32 1 (pow.f32 ux 3))) (*.f32 (+.f32 1 ux) (+.f32 1 (fma.f32 ux ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (-.f32 1 (*.f32 ux ux))) (*.f32 (+.f32 1 (fma.f32 ux ux ux)) (+.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 0 (pow.f32 (pow.f32 (-.f32 1 ux) 2) 3)) (+.f32 0 (+.f32 (pow.f32 (-.f32 1 ux) 4) (*.f32 0 (pow.f32 (-.f32 1 ux) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 0 (pow.f32 (-.f32 1 ux) 4)) (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (neg.f32 (-.f32 1 ux))) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (neg.f32 (-.f32 1 ux))) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (-.f32 1 ux)) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (-.f32 1 ux)) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 (pow.f32 ux 3))) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (neg.f32 (-.f32 1 ux)) (-.f32 1 (*.f32 ux ux))) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 ux) (-.f32 1 (pow.f32 ux 3))) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 ux) (-.f32 1 (*.f32 ux ux))) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (-.f32 1 ux) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (-.f32 1 ux) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (pow.f32 (-.f32 1 ux) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (cbrt.f32 (-.f32 1 ux)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (pow.f32 (-.f32 1 ux) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (-.f32 1 ux) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (pow.f32 (-.f32 1 ux) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (pow.f32 (-.f32 1 ux) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (pow.f32 (-.f32 1 ux) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log1p.f32 (neg.f32 ux)) 2))))))

simplify41.0ms (1.4%)

Algorithm
egg-herbie
Rules
704×fma-neg_binary32
451×fma-def_binary32
434×unswap-sqr_binary32
367×associate--l+_binary32
358×associate--r+_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
013166
129125
256119
395119
4197119
5471119
61455119
73179119
84600119
Stop Event
node limit
Counts
104 → 93
Calls
Call 1
Inputs
1
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(*.f32 -1 ux)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(*.f32 -1 ux)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) 1)
1
(+.f32 1 (*.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(pow.f32 ux 2)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(pow.f32 ux 2)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
Outputs
1
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(*.f32 -1 ux)
(neg.f32 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(*.f32 -1 ux)
(neg.f32 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) 1)
(fma.f32 -1 ux 1)
(-.f32 1 ux)
1
(+.f32 1 (*.f32 -2 ux))
(+.f32 1 (*.f32 ux -2))
(fma.f32 ux -2 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 ux -2)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 ux -2 1))
(fma.f32 ux (+.f32 ux -2) 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 ux -2)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 ux -2 1))
(fma.f32 ux (+.f32 ux -2) 1)
(pow.f32 ux 2)
(*.f32 ux ux)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (*.f32 ux -2) (*.f32 ux ux))
(*.f32 ux (+.f32 ux -2))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 ux -2)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 ux -2 1))
(fma.f32 ux (+.f32 ux -2) 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 ux -2)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 ux -2 1))
(fma.f32 ux (+.f32 ux -2) 1)
(pow.f32 ux 2)
(*.f32 ux ux)
(+.f32 (pow.f32 ux 2) (*.f32 -2 ux))
(+.f32 (*.f32 ux -2) (*.f32 ux ux))
(*.f32 ux (+.f32 ux -2))
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 ux -2)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 ux -2 1))
(fma.f32 ux (+.f32 ux -2) 1)
(+.f32 (pow.f32 ux 2) (+.f32 1 (*.f32 -2 ux)))
(+.f32 (+.f32 1 (*.f32 ux -2)) (*.f32 ux ux))
(fma.f32 ux ux (fma.f32 ux -2 1))
(fma.f32 ux (+.f32 ux -2) 1)

eval56.0ms (1.9%)

Compiler

Compiled 1360 to 1049 computations (22.9% saved)

prune22.0ms (0.7%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New93093
Fresh011
Picked011
Done033
Total93598
Error
0b
Counts
98 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.5b
(-.f32 1 ux)
8.4b
1
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 45 to 36 computations (20% saved)

regimes35.0ms (1.2%)

Counts
10 → 1
Calls
Call 1
Inputs
1
1
1
(-.f32 1 ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(/.f32 (neg.f32 (*.f32 (-.f32 1 ux) (-.f32 1 ux))) (+.f32 ux -1))
(-.f32 (fma.f32 ux maxCos 1) ux)
(/.f32 (neg.f32 (pow.f32 (-.f32 1 ux) 2)) (+.f32 ux -1))
(/.f32 (-.f32 (pow.f32 (*.f32 ux maxCos) 2) (pow.f32 (-.f32 1 ux) 2)) (-.f32 (*.f32 ux maxCos) (-.f32 1 ux)))
Outputs
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
Calls

5 calls:

7.0ms
ux
7.0ms
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
6.0ms
uy
6.0ms
maxCos
6.0ms
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Results
ErrorSegmentsBranch
0.0b1ux
0.0b1uy
0.0b1maxCos
0.0b1(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
0.0b1(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 102 to 71 computations (30.4% saved)

regimes13.0ms (0.4%)

Counts
4 → 1
Calls
Call 1
Inputs
1
1
1
(-.f32 1 ux)
Outputs
(-.f32 1 ux)
Calls

3 calls:

4.0ms
ux
4.0ms
uy
4.0ms
maxCos
Results
ErrorSegmentsBranch
0.5b1ux
0.5b1uy
0.5b1maxCos
Compiler

Compiled 21 to 17 computations (19% saved)

regimes14.0ms (0.5%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

Counts
3 → 1
Calls
Call 1
Inputs
1
1
1
Outputs
1
Calls

3 calls:

6.0ms
maxCos
4.0ms
uy
4.0ms
ux
Results
ErrorSegmentsBranch
8.4b1ux
8.4b1uy
8.4b1maxCos
Compiler

Compiled 18 to 15 computations (16.7% saved)

simplify2.0ms (0.1%)

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
0815
11715
22115
32315
42415
Stop Event
saturated
Calls
Call 1
Inputs
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(-.f32 1 ux)
1
Outputs
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(-.f32 1 ux)
1

end42.0ms (1.5%)

Stop Event
fuel
Compiler

Compiled 34 to 28 computations (17.6% saved)

Profiling

Loading profile data...