Details

Time bar (total: 2.8s)

analyze101.0ms (3.6%)

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

Compiled 26 to 19 computations (26.9% saved)

sample1.4s (49.3%)

Results
1.4s8256×body128valid
Compiler

Compiled 52 to 38 computations (26.9% saved)

preprocess57.0ms (2%)

Algorithm
egg-herbie
Rules
1209×fma-def_binary32
516×fma-neg_binary32
264×distribute-rgt-out--_binary32
220×associate--l+_binary32
202×distribute-rgt-in_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01428
13526
27826
316426
422826
530026
639526
757826
8112526
9177426
10229326
11262026
12294726
13325526
14333926
15340526
16380526
17458926
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
(*.f32 (*.f32 (neg.f32 u0) u0) (log.f32 (-.f32 1 alpha)))
Outputs
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
(*.f32 (neg.f32 alpha) (*.f32 alpha (log.f32 (-.f32 1 u0))))
(*.f32 alpha (*.f32 (neg.f32 alpha) (log1p.f32 (neg.f32 u0))))
(*.f32 (*.f32 (neg.f32 u0) u0) (log.f32 (-.f32 1 alpha)))
(*.f32 (neg.f32 u0) (*.f32 u0 (log.f32 (-.f32 1 alpha))))
(*.f32 u0 (*.f32 (neg.f32 u0) (log1p.f32 (neg.f32 alpha))))
(*.f32 u0 (*.f32 u0 (neg.f32 (log1p.f32 (neg.f32 alpha)))))
(*.f32 (*.f32 u0 (neg.f32 u0)) (log1p.f32 (neg.f32 alpha)))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify24.0ms (0.9%)

Algorithm
egg-herbie
Rules
544×fma-def_binary32
230×fma-neg_binary32
87×cancel-sign-sub-inv_binary32
81×distribute-rgt-in_binary32
69×distribute-lft-in_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0914
12213
24513
38913
412313
516413
621513
731513
859413
991013
10117413
11134113
12151113
13166513
14169213
15169313
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
Outputs
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
(*.f32 (neg.f32 alpha) (*.f32 alpha (log.f32 (-.f32 1 u0))))
(*.f32 alpha (*.f32 (neg.f32 alpha) (log1p.f32 (neg.f32 u0))))
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
13.2b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
Compiler

Compiled 61 to 42 computations (31.1% saved)

localize18.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(log1p.f32 (neg.f32 u0))
0.2b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

series28.0ms (1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
24.0ms
alpha
@0
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
1.0ms
u0
@0
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
1.0ms
u0
@inf
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
1.0ms
alpha
@inf
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
1.0ms
u0
@-inf
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

rewrite29.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
570×pow1_binary32
523×add-log-exp_binary32
522×expm1-log1p-u_binary32
521×log1p-expm1-u_binary32
84×associate-*r*_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0818
116312
2210212
Stop Event
node limit
Counts
2 → 30
Calls
Call 1
Inputs
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
(log1p.f32 (neg.f32 u0))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (+.f32 u0 1) (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (log1p.f32 u0) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (log1p.f32 u0) 3) (pow.f32 (*.f32 alpha alpha) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (log1p.f32 u0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log1p.f32 u0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log1p.f32 u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (log1p.f32 u0)) (pow.f32 (cbrt.f32 (log1p.f32 u0)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (log1p.f32 u0)) 2) (cbrt.f32 (log1p.f32 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (log1p.f32 u0)) (sqrt.f32 (log1p.f32 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log1p.f32 u0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (log1p.f32 u0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (log1p.f32 u0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (log1p.f32 u0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (log1p.f32 u0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 u0 1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (log1p.f32 u0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (log1p.f32 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (log1p.f32 u0)))))))

simplify34.0ms (1.2%)

Algorithm
egg-herbie
Rules
477×fma-neg_binary32
468×fma-def_binary32
366×times-frac_binary32
263×sub-neg_binary32
205×unswap-sqr_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
094752
1285698
2931650
33624644
Stop Event
node limit
Counts
66 → 80
Calls
Call 1
Inputs
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(*.f32 u0 (pow.f32 alpha 2))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2))))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
(*.f32 -1 (*.f32 (-.f32 (log.f32 -1) (log.f32 (/.f32 1 u0))) (pow.f32 alpha 2)))
(-.f32 (+.f32 (*.f32 (log.f32 (/.f32 1 u0)) (pow.f32 alpha 2)) (/.f32 (pow.f32 alpha 2) u0)) (*.f32 (log.f32 -1) (pow.f32 alpha 2)))
(-.f32 (+.f32 (*.f32 (log.f32 (/.f32 1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (/.f32 (pow.f32 alpha 2) u0))) (*.f32 (log.f32 -1) (pow.f32 alpha 2)))
(-.f32 (+.f32 (*.f32 (log.f32 (/.f32 1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3)))))) (*.f32 (log.f32 -1) (pow.f32 alpha 2)))
(*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2))
(+.f32 (*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2)) (/.f32 (pow.f32 alpha 2) u0))
(+.f32 (*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (/.f32 (pow.f32 alpha 2) u0)))
(+.f32 (*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3))))))
(*.f32 -1 u0)
(neg.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))))
(neg.f32 (+.f32 u0 (+.f32 (*.f32 1/3 (pow.f32 u0 3)) (*.f32 1/2 (pow.f32 u0 2)))))
(neg.f32 (+.f32 u0 (+.f32 (*.f32 1/3 (pow.f32 u0 3)) (+.f32 (*.f32 1/4 (pow.f32 u0 4)) (*.f32 1/2 (pow.f32 u0 2))))))
(-.f32 (log.f32 -1) (log.f32 (/.f32 1 u0)))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (log.f32 (/.f32 1 u0))))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (+.f32 (log.f32 (/.f32 1 u0)) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2))))))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (+.f32 (*.f32 1/3 (/.f32 1 (pow.f32 u0 3))) (+.f32 (log.f32 (/.f32 1 u0)) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2)))))))
(*.f32 -1 (log.f32 (/.f32 -1 u0)))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (/.f32 1 u0)))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (+.f32 (/.f32 1 u0) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2))))))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (+.f32 (/.f32 1 u0) (+.f32 (*.f32 1/3 (/.f32 1 (pow.f32 u0 3))) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2)))))))
Outputs
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 -1 (*.f32 (log.f32 (-.f32 1 u0)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (log.f32 (-.f32 1 u0)) (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha (neg.f32 alpha)))
(*.f32 u0 (pow.f32 alpha 2))
(*.f32 u0 (*.f32 alpha alpha))
(*.f32 (*.f32 u0 alpha) alpha)
(*.f32 alpha (*.f32 u0 alpha))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(fma.f32 1/2 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 (*.f32 alpha alpha) (fma.f32 1/2 (*.f32 u0 u0) u0))
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2))))
(fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (*.f32 u0 (*.f32 alpha alpha))))
(fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (*.f32 (*.f32 alpha alpha) (fma.f32 1/2 (*.f32 u0 u0) u0)))
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 u0 (*.f32 u0 1/2) u0)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
(fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (fma.f32 1/4 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) (*.f32 u0 (*.f32 alpha alpha)))))
(+.f32 (*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 1/4 (pow.f32 u0 4)))) (*.f32 (*.f32 alpha alpha) (fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))))
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
(*.f32 -1 (*.f32 (-.f32 (log.f32 -1) (log.f32 (/.f32 1 u0))) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (*.f32 alpha alpha) (-.f32 (log.f32 -1) (neg.f32 (log.f32 u0)))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (+.f32 (log.f32 -1) (log.f32 u0))))
(*.f32 alpha (*.f32 alpha (-.f32 (neg.f32 (log.f32 -1)) (log.f32 u0))))
(*.f32 alpha (*.f32 alpha (-.f32 (neg.f32 (log.f32 u0)) (log.f32 -1))))
(-.f32 (+.f32 (*.f32 (log.f32 (/.f32 1 u0)) (pow.f32 alpha 2)) (/.f32 (pow.f32 alpha 2) u0)) (*.f32 (log.f32 -1) (pow.f32 alpha 2)))
(-.f32 (fma.f32 (neg.f32 (log.f32 u0)) (*.f32 alpha alpha) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 (*.f32 alpha alpha) (log.f32 -1)))
(-.f32 (fma.f32 (*.f32 alpha alpha) (neg.f32 (log.f32 u0)) (/.f32 alpha (/.f32 u0 alpha))) (*.f32 alpha (*.f32 alpha (log.f32 -1))))
(+.f32 (*.f32 (/.f32 alpha u0) alpha) (*.f32 alpha (*.f32 alpha (-.f32 (neg.f32 (log.f32 -1)) (log.f32 u0)))))
(-.f32 (*.f32 (/.f32 alpha u0) alpha) (*.f32 alpha (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0)))))
(-.f32 (+.f32 (*.f32 (log.f32 (/.f32 1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (/.f32 (pow.f32 alpha 2) u0))) (*.f32 (log.f32 -1) (pow.f32 alpha 2)))
(-.f32 (fma.f32 (neg.f32 (log.f32 u0)) (*.f32 alpha alpha) (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0))) (*.f32 (*.f32 alpha alpha) (log.f32 -1)))
(-.f32 (fma.f32 (*.f32 alpha alpha) (neg.f32 (log.f32 u0)) (fma.f32 1/2 (*.f32 (/.f32 alpha u0) (/.f32 alpha u0)) (/.f32 alpha (/.f32 u0 alpha)))) (*.f32 alpha (*.f32 alpha (log.f32 -1))))
(+.f32 (*.f32 (+.f32 (/.f32 1/2 u0) 1) (*.f32 (/.f32 alpha u0) alpha)) (*.f32 alpha (*.f32 alpha (-.f32 (neg.f32 (log.f32 -1)) (log.f32 u0)))))
(fma.f32 (+.f32 (/.f32 1/2 u0) 1) (*.f32 (/.f32 alpha u0) alpha) (*.f32 alpha (*.f32 alpha (-.f32 (neg.f32 (log.f32 u0)) (log.f32 -1)))))
(-.f32 (+.f32 (*.f32 (log.f32 (/.f32 1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3)))))) (*.f32 (log.f32 -1) (pow.f32 alpha 2)))
(-.f32 (fma.f32 (neg.f32 (log.f32 u0)) (*.f32 alpha alpha) (+.f32 (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 1/3 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))) (*.f32 (*.f32 alpha alpha) (log.f32 -1)))
(-.f32 (fma.f32 (*.f32 alpha alpha) (neg.f32 (log.f32 u0)) (fma.f32 1/2 (*.f32 (/.f32 alpha u0) (/.f32 alpha u0)) (fma.f32 1/3 (/.f32 alpha (/.f32 (pow.f32 u0 3) alpha)) (/.f32 alpha (/.f32 u0 alpha))))) (*.f32 alpha (*.f32 alpha (log.f32 -1))))
(+.f32 (+.f32 (*.f32 (/.f32 alpha u0) alpha) (*.f32 (*.f32 (/.f32 alpha (*.f32 u0 u0)) alpha) (+.f32 1/2 (/.f32 1/3 u0)))) (*.f32 alpha (*.f32 alpha (-.f32 (neg.f32 (log.f32 -1)) (log.f32 u0)))))
(+.f32 (*.f32 (*.f32 (/.f32 alpha (*.f32 u0 u0)) alpha) (+.f32 1/2 (/.f32 1/3 u0))) (-.f32 (*.f32 (/.f32 alpha u0) alpha) (*.f32 alpha (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0))))))
(*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2))
(*.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)))
(+.f32 (*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2)) (/.f32 (pow.f32 alpha 2) u0))
(fma.f32 (log.f32 (/.f32 -1 u0)) (*.f32 alpha alpha) (/.f32 (*.f32 alpha alpha) u0))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (/.f32 alpha (/.f32 u0 alpha)))
(fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (*.f32 (/.f32 alpha u0) alpha))
(+.f32 (*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (/.f32 (pow.f32 alpha 2) u0)))
(fma.f32 (log.f32 (/.f32 -1 u0)) (*.f32 alpha alpha) (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0)))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (fma.f32 1/2 (*.f32 (/.f32 alpha u0) (/.f32 alpha u0)) (/.f32 alpha (/.f32 u0 alpha))))
(fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (*.f32 (+.f32 (/.f32 1/2 u0) 1) (*.f32 (/.f32 alpha u0) alpha)))
(+.f32 (*.f32 (log.f32 (/.f32 -1 u0)) (pow.f32 alpha 2)) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3))))))
(fma.f32 (log.f32 (/.f32 -1 u0)) (*.f32 alpha alpha) (+.f32 (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 1/3 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (fma.f32 1/2 (*.f32 (/.f32 alpha u0) (/.f32 alpha u0)) (fma.f32 1/3 (/.f32 alpha (/.f32 (pow.f32 u0 3) alpha)) (/.f32 alpha (/.f32 u0 alpha)))))
(fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (+.f32 (*.f32 (/.f32 alpha u0) alpha) (*.f32 (*.f32 (/.f32 alpha (*.f32 u0 u0)) alpha) (+.f32 1/2 (/.f32 1/3 u0)))))
(*.f32 -1 u0)
(neg.f32 u0)
(neg.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))))
(neg.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))))
(-.f32 (*.f32 (*.f32 u0 u0) -1/2) u0)
(-.f32 (*.f32 u0 (*.f32 u0 -1/2)) u0)
(neg.f32 (+.f32 u0 (+.f32 (*.f32 1/3 (pow.f32 u0 3)) (*.f32 1/2 (pow.f32 u0 2)))))
(neg.f32 (+.f32 u0 (fma.f32 1/3 (pow.f32 u0 3) (*.f32 1/2 (*.f32 u0 u0)))))
(-.f32 (neg.f32 u0) (fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3))))
(-.f32 (fma.f32 (*.f32 u0 u0) -1/2 (*.f32 (pow.f32 u0 3) -1/3)) u0)
(-.f32 (fma.f32 u0 (*.f32 u0 -1/2) (*.f32 (pow.f32 u0 3) -1/3)) u0)
(neg.f32 (+.f32 u0 (+.f32 (*.f32 1/3 (pow.f32 u0 3)) (+.f32 (*.f32 1/4 (pow.f32 u0 4)) (*.f32 1/2 (pow.f32 u0 2))))))
(neg.f32 (+.f32 u0 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 1/2 (*.f32 u0 u0))))))
(-.f32 (neg.f32 u0) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/4 (pow.f32 u0 4)))))
(-.f32 (neg.f32 u0) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3)))))
(-.f32 (log.f32 -1) (log.f32 (/.f32 1 u0)))
(-.f32 (log.f32 -1) (neg.f32 (log.f32 u0)))
(+.f32 (log.f32 -1) (log.f32 u0))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (log.f32 (/.f32 1 u0))))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (neg.f32 (log.f32 u0))))
(+.f32 (+.f32 (log.f32 -1) (/.f32 -1 u0)) (log.f32 u0))
(+.f32 (log.f32 -1) (-.f32 (log.f32 u0) (/.f32 1 u0)))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (+.f32 (log.f32 (/.f32 1 u0)) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2))))))
(-.f32 (-.f32 (log.f32 -1) (/.f32 1 u0)) (+.f32 (neg.f32 (log.f32 u0)) (/.f32 1/2 (*.f32 u0 u0))))
(-.f32 (+.f32 (log.f32 -1) (/.f32 -1 u0)) (-.f32 (/.f32 1/2 (*.f32 u0 u0)) (log.f32 u0)))
(+.f32 (-.f32 (log.f32 u0) (/.f32 1 u0)) (-.f32 (log.f32 -1) (/.f32 1/2 (*.f32 u0 u0))))
(+.f32 (-.f32 (log.f32 u0) (/.f32 1 u0)) (+.f32 (log.f32 -1) (/.f32 -1/2 (*.f32 u0 u0))))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (+.f32 (*.f32 1/3 (/.f32 1 (pow.f32 u0 3))) (+.f32 (log.f32 (/.f32 1 u0)) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2)))))))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (+.f32 (+.f32 (/.f32 1/3 (pow.f32 u0 3)) (neg.f32 (log.f32 u0))) (/.f32 1/2 (*.f32 u0 u0)))))
(-.f32 (log.f32 -1) (+.f32 (/.f32 1 u0) (+.f32 (-.f32 (/.f32 1/2 (*.f32 u0 u0)) (log.f32 u0)) (/.f32 1/3 (pow.f32 u0 3)))))
(-.f32 (+.f32 (-.f32 (log.f32 u0) (/.f32 1 u0)) (-.f32 (log.f32 -1) (/.f32 1/2 (*.f32 u0 u0)))) (/.f32 1/3 (pow.f32 u0 3)))
(+.f32 (log.f32 -1) (+.f32 (log.f32 u0) (+.f32 (/.f32 -1 u0) (-.f32 (/.f32 -1/2 (*.f32 u0 u0)) (/.f32 1/3 (pow.f32 u0 3))))))
(*.f32 -1 (log.f32 (/.f32 -1 u0)))
(neg.f32 (log.f32 (/.f32 -1 u0)))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (/.f32 1 u0)))
(neg.f32 (+.f32 (/.f32 1 u0) (log.f32 (/.f32 -1 u0))))
(-.f32 (/.f32 -1 u0) (log.f32 (/.f32 -1 u0)))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (+.f32 (/.f32 1 u0) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2))))))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (+.f32 (/.f32 1 u0) (/.f32 1/2 (*.f32 u0 u0)))))
(-.f32 (-.f32 (/.f32 -1 u0) (log.f32 (/.f32 -1 u0))) (/.f32 1/2 (*.f32 u0 u0)))
(+.f32 (/.f32 -1 u0) (-.f32 (/.f32 -1/2 (*.f32 u0 u0)) (log.f32 (/.f32 -1 u0))))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (+.f32 (/.f32 1 u0) (+.f32 (*.f32 1/3 (/.f32 1 (pow.f32 u0 3))) (*.f32 1/2 (/.f32 1 (pow.f32 u0 2)))))))
(neg.f32 (+.f32 (log.f32 (/.f32 -1 u0)) (+.f32 (+.f32 (/.f32 1 u0) (/.f32 1/3 (pow.f32 u0 3))) (/.f32 1/2 (*.f32 u0 u0)))))
(-.f32 (-.f32 (/.f32 -1 u0) (log.f32 (/.f32 -1 u0))) (+.f32 (/.f32 1/2 (*.f32 u0 u0)) (/.f32 1/3 (pow.f32 u0 3))))
(-.f32 (-.f32 (+.f32 (/.f32 -1 u0) (/.f32 -1/2 (*.f32 u0 u0))) (/.f32 1/3 (pow.f32 u0 3))) (log.f32 (/.f32 -1 u0)))
(+.f32 (/.f32 -1 u0) (-.f32 (-.f32 (/.f32 -1/2 (*.f32 u0 u0)) (/.f32 1/3 (pow.f32 u0 3))) (log.f32 (/.f32 -1 u0))))

prune41.0ms (1.5%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New77380
Fresh011
Picked011
Done000
Total77582
Error
0.1b
Counts
82 → 5
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.3b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
10.6b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (log1p.f32 u0) 3)))
13.2b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
4.2b
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
Compiler

Compiled 1344 to 781 computations (41.9% saved)

localize60.0ms (2.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
0.3b
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
0.4b
(*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))
0.4b
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))

series12.0ms (0.4%)

Counts
4 → 0
Calls

24 calls:

TimeVariablePointExpression
1.0ms
u0
@-inf
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
1.0ms
u0
@0
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
1.0ms
alpha
@0
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
1.0ms
alpha
@inf
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
1.0ms
u0
@inf
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))

rewrite45.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
636×log-prod_binary32
227×expm1-udef_binary32
227×log1p-udef_binary32
197×log-pow_binary32
141×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01540
131940
2334540
Stop Event
node limit
Counts
4 → 71
Calls
Call 1
Inputs
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
(*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))) (cbrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))))) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 u0 (cbrt.f32 (*.f32 alpha alpha))) (cbrt.f32 1/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 alpha (pow.f32 u0 3/2)) (sqrt.f32 1/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (*.f32 (pow.f32 u0 6) (pow.f32 alpha 4)) 1/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 1/3) (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 1/3 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 3))) (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 3))))) (log.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 3)))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 (cbrt.f32 (*.f32 alpha alpha))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (pow.f32 u0 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (pow.f32 u0 6) (pow.f32 alpha 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (pow.f32 u0 3) 3) (pow.f32 (*.f32 alpha alpha) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (pow.f32 u0 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 u0 (pow.f32 (*.f32 u0 alpha) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log.f32 (*.f32 alpha (pow.f32 u0 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 2 (log.f32 (*.f32 alpha (pow.f32 u0 3/2)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 4))) (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 4))))) (log.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 4)))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (*.f32 u0 u0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (pow.f32 u0 8) (pow.f32 alpha 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (pow.f32 u0 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (pow.f32 u0 4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (pow.f32 u0 4) 3) (pow.f32 (*.f32 alpha alpha) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 alpha (*.f32 alpha (pow.f32 u0 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log.f32 (*.f32 alpha (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 2 (log.f32 (*.f32 alpha (*.f32 u0 u0)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (pow.f32 (*.f32 u0 alpha) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (pow.f32 (*.f32 u0 alpha) 2))) (cbrt.f32 (exp.f32 (pow.f32 (*.f32 u0 alpha) 2))))) (log.f32 (cbrt.f32 (exp.f32 (pow.f32 (*.f32 u0 alpha) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (*.f32 u0 alpha) 2)))) (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (*.f32 u0 alpha) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 u0 alpha) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 u0 alpha) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (pow.f32 (*.f32 u0 alpha) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 alpha) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 u0 alpha) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (pow.f32 (*.f32 u0 alpha) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (pow.f32 (*.f32 u0 alpha) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 u0 6)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 u0 6) (pow.f32 (*.f32 alpha alpha) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (pow.f32 (*.f32 u0 alpha) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 u0 alpha)) 2))))))

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
71 → 71
Calls
Call 1
Inputs
Outputs

prune77.0ms (2.7%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New71071
Fresh033
Picked011
Done011
Total71576
Error
0.1b
Counts
76 → 5
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.3b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
10.6b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (log1p.f32 u0) 3)))
13.2b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
4.2b
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
Compiler

Compiled 2890 to 2130 computations (26.3% saved)

localize19.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))
0.3b
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))

series7.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
alpha
@0
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
1.0ms
u0
@-inf
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
1.0ms
u0
@inf
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
1.0ms
u0
@0
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
1.0ms
alpha
@0
(*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))

rewrite35.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
765×pow1_binary32
703×log1p-expm1-u_binary32
703×expm1-log1p-u_binary32
80×add-sqr-sqrt_binary32
79×associate-*r*_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0825
116125
2190525
Stop Event
node limit
Counts
2 → 34
Calls
Call 1
Inputs
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
(*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 (*.f32 u0 u0) 1/2) (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 alpha alpha) (*.f32 (*.f32 u0 u0) 1/2)) (*.f32 (*.f32 alpha alpha) u0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 u0 (*.f32 u0 1/2) u0))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 alpha) (fma.f32 u0 (*.f32 u0 1/2) u0)) alpha))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 alpha 3) (pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 3) (pow.f32 alpha 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 (*.f32 u0 u0) 1/2) alpha) (*.f32 u0 alpha))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 alpha (*.f32 (*.f32 u0 u0) 1/2)) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 alpha) (fma.f32 u0 (*.f32 u0 1/2) u0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 alpha 3) (pow.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) 3) (pow.f32 alpha 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0))) 1))))))

simplify93.0ms (3.3%)

Algorithm
egg-herbie
Rules
1161×fma-def_binary32
385×*-commutative_binary32
366×sqr-pow_binary32
355×unswap-sqr_binary32
315×associate-*l*_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019666
143582
293582
3249582
41222582
52594582
63166582
73546582
83700582
93838582
104002582
114230582
124450582
134739582
144999582
Stop Event
node limit
Counts
82 → 47
Calls
Call 1
Inputs
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 u0 (pow.f32 alpha 2))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 u0 alpha)
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
Outputs
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 u0 (pow.f32 alpha 2))
(*.f32 u0 (*.f32 alpha alpha))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) (*.f32 alpha alpha)))
(*.f32 1/2 (*.f32 u0 (*.f32 u0 (*.f32 alpha alpha))))
(*.f32 u0 (*.f32 u0 (*.f32 1/2 (*.f32 alpha alpha))))
(*.f32 u0 (*.f32 u0 (*.f32 alpha (*.f32 1/2 alpha))))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) (*.f32 alpha alpha)))
(*.f32 1/2 (*.f32 u0 (*.f32 u0 (*.f32 alpha alpha))))
(*.f32 u0 (*.f32 u0 (*.f32 1/2 (*.f32 alpha alpha))))
(*.f32 u0 (*.f32 u0 (*.f32 alpha (*.f32 1/2 alpha))))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 u0 alpha)
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) alpha))
(*.f32 1/2 (*.f32 u0 (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 (*.f32 u0 1/2) alpha))
(*.f32 u0 (*.f32 1/2 (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 u0 (*.f32 1/2 alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) alpha))
(*.f32 1/2 (*.f32 u0 (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 (*.f32 u0 1/2) alpha))
(*.f32 u0 (*.f32 1/2 (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 u0 (*.f32 1/2 alpha)))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 1/2 (*.f32 u0 alpha) alpha))

prune32.0ms (1.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New43447
Fresh022
Picked101
Done022
Total44852
Error
0.1b
Counts
52 → 8
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.3b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
10.6b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (log1p.f32 u0) 3)))
4.2b
(*.f32 alpha (pow.f32 (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)) 1))
4.4b
(pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 u0 (*.f32 u0 1/2) u0))) 2)
4.5b
(pow.f32 (cbrt.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))) 3)
4.2b
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
13.2b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
Compiler

Compiled 782 to 475 computations (39.3% saved)

localize26.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f32 u0 2)
0.2b
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
0.3b
(*.f32 (pow.f32 u0 2) alpha)
0.3b
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))

series10.0ms (0.3%)

Counts
4 → 39
Calls

21 calls:

TimeVariablePointExpression
2.0ms
alpha
@inf
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
1.0ms
alpha
@0
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
1.0ms
u0
@inf
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
1.0ms
u0
@0
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
1.0ms
u0
@-inf
(pow.f32 u0 2)

rewrite58.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
613×log-prod_binary32
448×fma-def_binary32
206×expm1-udef_binary32
206×log1p-udef_binary32
192×fma-neg_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01142
124340
2321736
Stop Event
node limit
Counts
4 → 175
Calls
Call 1
Inputs
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
(*.f32 (pow.f32 u0 2) alpha)
(+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha)))
(pow.f32 u0 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 alpha (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 alpha (*.f32 alpha u0)) 1) (*.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))) (cbrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))))) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (*.f32 alpha (*.f32 alpha u0)) 3) (pow.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) 3)) (fma.f32 (*.f32 alpha (*.f32 alpha u0)) (*.f32 alpha (*.f32 alpha u0)) (-.f32 (*.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))) (*.f32 (*.f32 alpha (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (*.f32 (*.f32 alpha (*.f32 alpha u0)) (*.f32 alpha (*.f32 alpha u0))) (*.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))) (-.f32 (*.f32 alpha (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3)) alpha) (fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)) (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) alpha) (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 alpha (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3))) (fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)) (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 alpha (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4))) (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 alpha) (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (exp.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))) (exp.f32 (*.f32 alpha (*.f32 alpha u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 alpha 3) (pow.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 3) (pow.f32 alpha 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 alpha (*.f32 alpha u0) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 alpha (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 (*.f32 alpha alpha) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha u0) alpha (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1/2 (pow.f32 (*.f32 alpha u0) 2) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 u0 u0)) (*.f32 1/2 alpha) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) alpha (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 alpha (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha alpha) u0 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (*.f32 alpha u0) 2) 1/2 (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 alpha) 2) (*.f32 (cbrt.f32 alpha) (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 alpha) 2) (*.f32 (cbrt.f32 alpha) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) (*.f32 (cbrt.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))) alpha) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 alpha u0)) 2) (*.f32 (cbrt.f32 (*.f32 alpha u0)) alpha) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 alpha) (*.f32 (sqrt.f32 alpha) (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 alpha) (*.f32 (sqrt.f32 alpha) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) (*.f32 (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) alpha) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 alpha u0)) (*.f32 (sqrt.f32 (*.f32 alpha u0)) alpha) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 alpha u0)) 1 (*.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 (*.f32 u0 u0)) (*.f32 alpha alpha) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (*.f32 alpha (*.f32 alpha u0))) (cbrt.f32 (*.f32 alpha (*.f32 alpha u0)))) (cbrt.f32 (*.f32 alpha (*.f32 alpha u0))) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))) (cbrt.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))) (cbrt.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 alpha (*.f32 alpha u0))) (sqrt.f32 (*.f32 alpha (*.f32 alpha u0))) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))) (sqrt.f32 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (sqrt.f32 alpha) (sqrt.f32 (*.f32 alpha u0))) (*.f32 (sqrt.f32 alpha) (sqrt.f32 (*.f32 alpha u0))) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (sqrt.f32 (*.f32 alpha u0)) (sqrt.f32 alpha)) (*.f32 (sqrt.f32 (*.f32 alpha u0)) (sqrt.f32 alpha)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (sqrt.f32 alpha) (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2))) (*.f32 (sqrt.f32 alpha) (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) (sqrt.f32 alpha)) (*.f32 (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) (sqrt.f32 alpha)) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha 1/2) (*.f32 alpha (*.f32 u0 u0)) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (pow.f32 (cbrt.f32 (*.f32 alpha u0)) 2)) (cbrt.f32 (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (sqrt.f32 (*.f32 alpha u0))) (sqrt.f32 (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha u0) (pow.f32 (cbrt.f32 alpha) 2)) (cbrt.f32 alpha) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha u0) (sqrt.f32 alpha)) (sqrt.f32 alpha) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (cbrt.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4))) (cbrt.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2))) (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (pow.f32 (cbrt.f32 alpha) 2)) (cbrt.f32 alpha) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (sqrt.f32 alpha)) (sqrt.f32 alpha) (*.f32 alpha (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 alpha (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 u0 u0))) (cbrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 u0 u0))))) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 u0 u0)))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 alpha) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 alpha (*.f32 u0 u0)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (*.f32 u0 u0)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 alpha (*.f32 u0 u0))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 (sqrt.f32 alpha)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 alpha) (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 alpha 3) (pow.f32 (*.f32 u0 u0) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 u0 u0) 3) (pow.f32 alpha 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 alpha (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 alpha (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (fma.f32 2 (log.f32 u0) (log.f32 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (fma.f32 2 (log.f32 u0) (log.f32 alpha)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0))))) (/.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4) (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 alpha (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) (pow.f32 (cbrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 2) (cbrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) (sqrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3)) (/.f32 1 (fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)) (pow.f32 (*.f32 alpha u0) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) (/.f32 1 (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)) (pow.f32 (*.f32 alpha u0) 2)) (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0)))) (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3)) (fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)) (pow.f32 (*.f32 alpha u0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3)) (fma.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4 (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 u0 (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (fma.f32 (pow.f32 (*.f32 alpha (*.f32 u0 u0)) 3) 1/8 (pow.f32 (*.f32 alpha u0) 3))) (neg.f32 (fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)) (pow.f32 (*.f32 alpha u0) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4))) (neg.f32 (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4) (pow.f32 (*.f32 alpha u0) 2)) (-.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 alpha u0))) (pow.f32 (exp.f32 1/2) (*.f32 alpha (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (pow.f32 (exp.f32 u0) alpha) (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 alpha u0))) (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))) (pow.f32 (exp.f32 u0) alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (pow.f32 (exp.f32 1/2) (*.f32 alpha (*.f32 u0 u0))) (+.f32 1 (expm1.f32 (*.f32 alpha u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (*.f32 (+.f32 1 (expm1.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))) (+.f32 1 (expm1.f32 (*.f32 alpha u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 alpha u0 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 alpha (*.f32 1/2 (*.f32 u0 u0)) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 alpha (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha u0) 1 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1/2 (*.f32 alpha (*.f32 u0 u0)) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 u0) (*.f32 alpha 1/2) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 u0 u0)) 1/2 (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) 1 (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 alpha u0) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4))) (*.f32 (cbrt.f32 (*.f32 alpha (*.f32 u0 u0))) 1/2) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 alpha) 2) (*.f32 (cbrt.f32 alpha) u0) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))) (cbrt.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) (cbrt.f32 (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0)))) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 u0) 2) (*.f32 (cbrt.f32 u0) alpha) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (*.f32 alpha u0)) (pow.f32 (cbrt.f32 (*.f32 alpha u0)) 2) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 alpha u0)) 2) (cbrt.f32 (*.f32 alpha u0)) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 alpha) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (sqrt.f32 alpha)) (*.f32 (*.f32 u0 (sqrt.f32 alpha)) 1/2) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 alpha) (*.f32 u0 (sqrt.f32 alpha)) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) (*.f32 (*.f32 u0 (sqrt.f32 alpha)) (sqrt.f32 1/2)) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 u0) (*.f32 (sqrt.f32 u0) alpha) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 alpha u0)) (sqrt.f32 (*.f32 alpha u0)) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 (*.f32 u0 u0)) alpha (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 alpha) (*.f32 u0 u0) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (pow.f32 (cbrt.f32 u0) 2)) (cbrt.f32 u0) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (sqrt.f32 u0)) (sqrt.f32 u0) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (pow.f32 (cbrt.f32 alpha) 2)) (cbrt.f32 alpha) (*.f32 alpha (*.f32 1/2 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)))) (cbrt.f32 (*.f32 alpha (*.f32 u0 u0))) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 (*.f32 u0 (sqrt.f32 alpha))) (*.f32 u0 (sqrt.f32 alpha)) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 1/2 (*.f32 u0 u0)) 1) alpha (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 1/2 (*.f32 u0 u0)) (pow.f32 (cbrt.f32 alpha) 2)) (cbrt.f32 alpha) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 1/2 (*.f32 u0 u0)) (sqrt.f32 alpha)) (sqrt.f32 alpha) (*.f32 alpha u0))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 u0 u0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (exp.f32 u0) u0)) (cbrt.f32 (pow.f32 (exp.f32 u0) u0)))) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 u0) u0))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 u0) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 u0 u0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 u0 u0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 u0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (*.f32 u0 u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 u0) 2) (cbrt.f32 (pow.f32 u0 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 u0) 2) (*.f32 (cbrt.f32 u0) u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 u0 4)) (pow.f32 (cbrt.f32 u0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 u0) (*.f32 (sqrt.f32 u0) u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 (sqrt.f32 u0)) (sqrt.f32 u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 (pow.f32 (cbrt.f32 u0) 2)) (cbrt.f32 u0))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 u0 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 u0) u0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 u0 u0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log.f32 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 2 (log.f32 u0)) 1))))))

simplify90.0ms (3.2%)

Algorithm
egg-herbie
Rules
1161×fma-def_binary32
384×*-commutative_binary32
366×sqr-pow_binary32
355×unswap-sqr_binary32
313×associate-*l*_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018549
140483
288483
3249483
41224483
52592483
63164483
73544483
83698483
93836483
104000483
114228483
124448483
134735483
144995483
Stop Event
node limit
Counts
214 → 187
Calls
Call 1
Inputs
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 u0 (pow.f32 alpha 2))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 u0 alpha)
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
Outputs
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 u0 (pow.f32 alpha 2))
(*.f32 u0 (*.f32 alpha alpha))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) (*.f32 alpha alpha)))
(*.f32 1/2 (*.f32 (*.f32 u0 alpha) (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 (*.f32 u0 1/2) (*.f32 alpha alpha)))
(*.f32 u0 (*.f32 1/2 (*.f32 u0 (*.f32 alpha alpha))))
(*.f32 alpha (*.f32 1/2 (*.f32 u0 (*.f32 u0 alpha))))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) (*.f32 alpha alpha)))
(*.f32 1/2 (*.f32 (*.f32 u0 alpha) (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 (*.f32 u0 1/2) (*.f32 alpha alpha)))
(*.f32 u0 (*.f32 1/2 (*.f32 u0 (*.f32 alpha alpha))))
(*.f32 alpha (*.f32 1/2 (*.f32 u0 (*.f32 u0 alpha))))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) (*.f32 alpha alpha))
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) (*.f32 alpha alpha))
(*.f32 u0 (*.f32 alpha (fma.f32 u0 (*.f32 1/2 alpha) alpha)))
(*.f32 u0 alpha)
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) alpha))
(*.f32 1/2 (*.f32 u0 (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 (*.f32 u0 1/2) alpha))
(*.f32 u0 (*.f32 1/2 (*.f32 u0 alpha)))
(*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))
(*.f32 1/2 (*.f32 (*.f32 u0 u0) alpha))
(*.f32 1/2 (*.f32 u0 (*.f32 u0 alpha)))
(*.f32 u0 (*.f32 (*.f32 u0 1/2) alpha))
(*.f32 u0 (*.f32 1/2 (*.f32 u0 alpha)))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))
(*.f32 (+.f32 u0 (*.f32 1/2 (pow.f32 u0 2))) alpha)
(*.f32 (+.f32 u0 (*.f32 1/2 (*.f32 u0 u0))) alpha)
(*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) alpha)
(*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) alpha)
(*.f32 (*.f32 u0 (fma.f32 u0 1/2 1)) alpha)
(*.f32 u0 (fma.f32 u0 (*.f32 1/2 alpha) alpha))

prune130.0ms (4.7%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1843187
Fresh325
Picked011
Done022
Total1878195
Error
0.1b
Counts
195 → 8
Alt Table
StatusErrorProgram
4.5b
(fma.f32 (pow.f32 (cbrt.f32 alpha) 2) (*.f32 (cbrt.f32 alpha) (*.f32 alpha u0)) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.3b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
4.3b
(fma.f32 (sqrt.f32 (*.f32 alpha u0)) (*.f32 (sqrt.f32 (*.f32 alpha u0)) alpha) (*.f32 1/2 (pow.f32 (*.f32 alpha u0) 2)))
4.5b
(pow.f32 (cbrt.f32 (*.f32 (fma.f32 u0 (*.f32 u0 1/2) u0) (*.f32 alpha alpha))) 3)
4.2b
(*.f32 alpha (+.f32 (*.f32 u0 alpha) (*.f32 1/2 (*.f32 (pow.f32 u0 2) alpha))))
4.3b
(/.f32 (*.f32 (-.f32 (pow.f32 (*.f32 alpha u0) 2) (*.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) 1/4)) alpha) (*.f32 alpha (-.f32 u0 (*.f32 1/2 (*.f32 u0 u0)))))
13.2b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
Compiler

Compiled 3532 to 1622 computations (54.1% saved)

regimes291.0ms (10.4%)

Accuracy

Total 0.2b remaining (70%)

Threshold costs 0.2b (70%)

Counts
105 → 1
Compiler

Compiled 1560 to 725 computations (53.5% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11813
22813
33913
44413
54713
64813
Stop Event
saturated
Calls
Call 1
Inputs
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Outputs
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

end92.0ms (3.3%)

Stop Event
fuel
Compiler

Compiled 177 to 119 computations (32.8% saved)

Profiling

Loading profile data...