Details

Time bar (total: 3.2s)

analyze120.0ms (3.7%)

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

Results
1.7s8256×body128valid

preprocess64.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)

simplify26.0ms (0.8%)

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

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 39 to 26 computations (33.3% saved)

localize24.0ms (0.7%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

series31.0ms (1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
28.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
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)))
1.0ms
u0
@-inf
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

rewrite31.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
0813
11639
221029
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f32 (*.f32 alpha (neg.f32 alpha)) (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 exp.f32 (log.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)))))))))

simplify29.0ms (0.9%)

Algorithm
egg-herbie
Rules
352×times-frac_binary32
250×associate-/l*_binary32
244×fma-def_binary32
205×unswap-sqr_binary32
201×distribute-rgt-out_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
054528
1147480
2452442
31803430
Stop Event
node limit
Counts
39 → 41
Calls
Call 1
Inputs
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(*.f32 u0 (pow.f32 alpha 2))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.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 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))))
(*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2)))
(+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2))))
(+.f32 (/.f32 (pow.f32 alpha 2) u0) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2)))))
(+.f32 (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2))))))
(*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0)))
(+.f32 (*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0))) (/.f32 (pow.f32 alpha 2) u0))
(+.f32 (*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2)))))
(+.f32 (*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0))) (+.f32 (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))))))
Outputs
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 -1 (*.f32 (pow.f32 alpha 2) (log.f32 (-.f32 1 u0))))
(neg.f32 (*.f32 (*.f32 alpha alpha) (log.f32 (-.f32 1 u0))))
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0))))
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 u0 (pow.f32 alpha 2))
(*.f32 (*.f32 alpha alpha) u0)
(*.f32 alpha (*.f32 alpha u0))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(fma.f32 u0 (*.f32 alpha alpha) (*.f32 1/2 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0))))
(*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 1/2 (*.f32 u0 u0)) u0))
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(fma.f32 u0 (*.f32 alpha alpha) (fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (*.f32 1/2 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0)))))
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 1/2 (*.f32 u0 u0)) (*.f32 1/3 (pow.f32 u0 3)))))
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3)))))
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3))))))
(+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))))
(fma.f32 1/4 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 4)) (fma.f32 u0 (*.f32 alpha alpha) (fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (*.f32 1/2 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0))))))
(+.f32 (*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 1/2 (*.f32 u0 u0)) (*.f32 1/3 (pow.f32 u0 3)))) (*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 1/4 (pow.f32 u0 4)) u0)))
(*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))) (fma.f32 1/4 (pow.f32 u0 4) u0)))
(*.f32 (*.f32 alpha alpha) (+.f32 (*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3)))) (fma.f32 1/4 (pow.f32 u0 4) u0)))
(*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2)))
(neg.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 -1 (neg.f32 (log.f32 u0)) (log.f32 -1))))
(*.f32 (+.f32 (log.f32 -1) (log.f32 u0)) (neg.f32 (*.f32 alpha alpha)))
(*.f32 (*.f32 alpha alpha) (-.f32 (neg.f32 (log.f32 u0)) (log.f32 -1)))
(+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2))))
(+.f32 (neg.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 -1 (neg.f32 (log.f32 u0)) (log.f32 -1)))) (/.f32 (*.f32 alpha alpha) u0))
(-.f32 (/.f32 (*.f32 alpha alpha) u0) (*.f32 alpha (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0)))))
(fma.f32 (+.f32 (log.f32 -1) (log.f32 u0)) (neg.f32 (*.f32 alpha alpha)) (/.f32 (*.f32 alpha alpha) u0))
(*.f32 alpha (-.f32 (/.f32 alpha u0) (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0)))))
(+.f32 (/.f32 (pow.f32 alpha 2) u0) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2)))))
(+.f32 (/.f32 (*.f32 alpha alpha) u0) (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (neg.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 -1 (neg.f32 (log.f32 u0)) (log.f32 -1))))))
(-.f32 (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 alpha (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0)))))
(-.f32 (*.f32 (+.f32 (/.f32 1/2 u0) 1) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 alpha (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0)))))
(fma.f32 (/.f32 alpha u0) alpha (*.f32 (*.f32 alpha alpha) (-.f32 (/.f32 1/2 (*.f32 u0 u0)) (+.f32 (log.f32 -1) (log.f32 u0)))))
(+.f32 (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))) (*.f32 -1 (*.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 u0))) (log.f32 -1)) (pow.f32 alpha 2))))))
(fma.f32 1/3 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (+.f32 (/.f32 (*.f32 alpha alpha) u0) (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (neg.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 -1 (neg.f32 (log.f32 u0)) (log.f32 -1)))))))
(fma.f32 1/3 (/.f32 alpha (/.f32 (pow.f32 u0 3) alpha)) (-.f32 (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 alpha (*.f32 alpha (+.f32 (log.f32 -1) (log.f32 u0))))))
(+.f32 (fma.f32 (+.f32 (log.f32 -1) (log.f32 u0)) (neg.f32 (*.f32 alpha alpha)) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 (*.f32 (/.f32 alpha u0) (/.f32 alpha u0)) (+.f32 (/.f32 1/3 u0) 1/2)))
(-.f32 (*.f32 (/.f32 alpha u0) (+.f32 alpha (*.f32 1/2 (/.f32 alpha u0)))) (*.f32 (*.f32 alpha alpha) (-.f32 (+.f32 (log.f32 -1) (log.f32 u0)) (/.f32 1/3 (pow.f32 u0 3)))))
(*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0)))
(*.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)))
(*.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))))
(+.f32 (*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0))) (/.f32 (pow.f32 alpha 2) u0))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (/.f32 (*.f32 alpha alpha) u0))
(fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (/.f32 (*.f32 alpha alpha) u0))
(*.f32 alpha (+.f32 (/.f32 alpha u0) (*.f32 alpha (log.f32 (/.f32 -1 u0)))))
(+.f32 (*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2)))))
(+.f32 (fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0))))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0)))
(fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (*.f32 (+.f32 (/.f32 1/2 u0) 1) (/.f32 (*.f32 alpha alpha) u0)))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (*.f32 (/.f32 alpha u0) (+.f32 alpha (*.f32 1/2 (/.f32 alpha u0)))))
(+.f32 (*.f32 (pow.f32 alpha 2) (log.f32 (/.f32 -1 u0))) (+.f32 (*.f32 1/3 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 3))) (+.f32 (/.f32 (pow.f32 alpha 2) u0) (*.f32 1/2 (/.f32 (pow.f32 alpha 2) (pow.f32 u0 2))))))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (fma.f32 1/3 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (+.f32 (/.f32 (*.f32 alpha alpha) u0) (*.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0))))))
(fma.f32 (*.f32 alpha alpha) (log.f32 (/.f32 -1 u0)) (fma.f32 1/3 (/.f32 alpha (/.f32 (pow.f32 u0 3) alpha)) (fma.f32 1/2 (/.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (/.f32 (*.f32 alpha alpha) u0))))
(+.f32 (fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 (*.f32 (/.f32 alpha u0) (/.f32 alpha u0)) (+.f32 (/.f32 1/3 u0) 1/2)))
(fma.f32 alpha (*.f32 alpha (log.f32 (/.f32 -1 u0))) (*.f32 (*.f32 alpha (/.f32 alpha u0)) (+.f32 (/.f32 1/2 u0) (+.f32 (/.f32 1/3 (*.f32 u0 u0)) 1))))

prune30.0ms (0.9%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New36541
Fresh000
Picked011
Done000
Total36642
Error
0.1b
Counts
42 → 6
Alt Table
StatusErrorProgram
1.7b
(+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))))
2.2b
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3))))))
3.4b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.4b
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
8.6b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
Compiler

Compiled 799 to 510 computations (36.2% saved)

localize77.0ms (2.4%)

Local error

Found 4 expressions with local error:

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

series12.0ms (0.4%)

Counts
4 → 0
Calls

24 calls:

TimeVariablePointExpression
1.0ms
alpha
@0
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
1.0ms
u0
@0
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
1.0ms
alpha
@0
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
1.0ms
u0
@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)))

rewrite55.0ms (1.7%)

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
2334240
Stop Event
node limit
Counts
4 → 71
Calls
Call 1
Inputs
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
(*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha)))))) (#(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 (pow.f32 u0 4) (*.f32 alpha alpha)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha))) 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 alpha 4) (pow.f32 u0 8)))))) (#(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 (pow.f32 u0 4) (*.f32 alpha alpha)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha)) 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 cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (pow.f32 u0 4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (fma.f32 4 (log.f32 u0) (*.f32 2 (log.f32 alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (fma.f32 4 (log.f32 u0) (*.f32 2 (log.f32 alpha))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (pow.f32 u0 4) (*.f32 alpha alpha))))))))
((#(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 exp.f32 (*.f32 2 (log.f32 (*.f32 u0 alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 2 (log.f32 (*.f32 u0 alpha))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.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 +.f32 0 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))) (cbrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))))) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 1/3) (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3))) 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 (*.f32 alpha alpha) (pow.f32 u0 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (*.f32 alpha alpha) (*.f32 1/3 (pow.f32 u0 3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (exp.f32 (pow.f32 u0 3)) (*.f32 alpha alpha))) (cbrt.f32 (pow.f32 (exp.f32 (pow.f32 u0 3)) (*.f32 alpha alpha))))) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 (pow.f32 u0 3)) (*.f32 alpha alpha)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 (pow.f32 u0 3)) (*.f32 alpha alpha)))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 (pow.f32 u0 3)) (*.f32 alpha alpha)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) 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 (exp.f32 (pow.f32 u0 3)) (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) 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 cbrt.f32 (*.f32 (pow.f32 (pow.f32 u0 3) 3) (pow.f32 (*.f32 alpha alpha) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3))))))))

simplify8.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

prune111.0ms (3.4%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New70171
Fresh044
Picked101
Done011
Total71677
Error
0.1b
Counts
77 → 6
Alt Table
StatusErrorProgram
1.7b
(+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (pow.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 2)) 3)))))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.2b
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3))))))
3.4b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.4b
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
8.6b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
Compiler

Compiled 2967 to 2183 computations (26.4% saved)

localize80.0ms (2.5%)

Local error

Found 4 expressions with local error:

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

series9.0ms (0.3%)

Counts
2 → 24
Calls

12 calls:

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

rewrite36.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
657×pow1_binary32
616×add-log-exp_binary32
615×log1p-expm1-u_binary32
615×expm1-log1p-u_binary32
80×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
119214
2188714
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(pow.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 2)) 3)
(pow.f32 (*.f32 u0 alpha) 2)
Outputs
((#(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 *.f32 u0 (*.f32 alpha (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 alpha (*.f32 u0 (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (*.f32 u0 alpha) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2) (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (pow.f32 (*.f32 u0 alpha) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))) (*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2)) (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 alpha) (*.f32 u0 alpha))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 u0 alpha)) (*.f32 (cbrt.f32 (*.f32 u0 alpha)) (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 u0 alpha)) (*.f32 (sqrt.f32 (*.f32 u0 alpha)) (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 u0) (*.f32 alpha alpha))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 alpha alpha) (*.f32 u0 u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))) 3) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) (sqrt.f32 (*.f32 u0 alpha))) (sqrt.f32 (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) u0) alpha)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) alpha) u0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2)) (cbrt.f32 (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) 1) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) (cbrt.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)))) (cbrt.f32 (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) (cbrt.f32 (*.f32 u0 alpha))) (cbrt.f32 (*.f32 u0 alpha)))))) (#(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 expm1.f32 (log1p.f32 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log.f32 (*.f32 u0 alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.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 *.f32 u0 (*.f32 alpha (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 alpha (*.f32 u0 (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (*.f32 u0 alpha) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2) (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (pow.f32 (*.f32 u0 alpha) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))) (*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2)) (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 alpha) (*.f32 u0 alpha))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 u0 alpha)) (*.f32 (cbrt.f32 (*.f32 u0 alpha)) (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 u0 alpha)) (*.f32 (sqrt.f32 (*.f32 u0 alpha)) (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 u0 u0) (*.f32 alpha alpha))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 alpha alpha) (*.f32 u0 u0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4))) 3) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) (sqrt.f32 (*.f32 u0 alpha))) (sqrt.f32 (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) u0) alpha)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) alpha) u0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 u0 alpha) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2)) (cbrt.f32 (*.f32 u0 alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) 1) (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) (cbrt.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)))) (cbrt.f32 (pow.f32 (cbrt.f32 (*.f32 u0 alpha)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 4)) (cbrt.f32 (*.f32 u0 alpha))) (cbrt.f32 (*.f32 u0 alpha)))))) (#(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 expm1.f32 (log1p.f32 (pow.f32 (*.f32 u0 alpha) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 2 (log.f32 (*.f32 u0 alpha))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (pow.f32 (*.f32 u0 alpha) 2)))))))

simplify72.0ms (2.2%)

Algorithm
egg-herbie
Rules
719×associate-*l*_binary32
564×sqr-pow_binary32
505×associate-*r*_binary32
482×*-commutative_binary32
263×cube-prod_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07240
116240
237240
3103240
4432240
52343240
62435240
72636240
82834240
93072240
103391240
114063240
124557240
Stop Event
node limit
Counts
80 → 30
Calls
Call 1
Inputs
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
Outputs
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
(*.f32 (*.f32 u0 u0) (*.f32 alpha alpha))
(*.f32 (*.f32 alpha u0) (*.f32 alpha u0))
(*.f32 u0 (*.f32 u0 (*.f32 alpha alpha)))
(*.f32 alpha (*.f32 (*.f32 u0 u0) alpha))

prune99.0ms (3.1%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New64064
Fresh044
Picked011
Done011
Total64670
Error
0.1b
Counts
70 → 6
Alt Table
StatusErrorProgram
1.7b
(+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (pow.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 2)) 3)))))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.2b
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3))))))
3.4b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.4b
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
8.6b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
Compiler

Compiled 2703 to 1911 computations (29.3% saved)

localize36.0ms (1.1%)

Local error

Found 4 expressions with local error:

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

series8.0ms (0.2%)

Counts
4 → 60
Calls

15 calls:

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

rewrite66.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
488×fma-def_binary32
241×expm1-udef_binary32
241×log1p-udef_binary32
207×fma-neg_binary32
143×add-sqr-sqrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01249
127641
2398241
Stop Event
node limit
Counts
4 → 152
Calls
Call 1
Inputs
(*.f32 u0 1/3)
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3))))))
(*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3)))
(*.f32 u0 (*.f32 u0 (+.f32 1/2 (*.f32 u0 1/3))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 u0 1/3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 u0 1/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 u0 1/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 1/27 (pow.f32 u0 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (*.f32 u0 u0) 1/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 1/3) u0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 u0 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 1/27 (pow.f32 u0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 u0 1/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 u0 1/3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 u0 (*.f32 alpha alpha)) 1) (*.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (*.f32 u0 (*.f32 alpha alpha)) 3) (pow.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) 3)) (fma.f32 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)) (-.f32 (*.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))) (*.f32 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (*.f32 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha))) (*.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))) (-.f32 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (pow.f32 u0 3) (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 3)) (*.f32 alpha alpha)) (fma.f32 u0 u0 (*.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) (-.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 (*.f32 u0 u0) (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 2)) (*.f32 alpha alpha)) (-.f32 u0 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 alpha alpha) (+.f32 (pow.f32 u0 3) (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 3))) (fma.f32 u0 u0 (*.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) (-.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) u0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 alpha alpha) (-.f32 (*.f32 u0 u0) (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 2))) (-.f32 u0 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 alpha (sqrt.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (pow.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)) 2) (pow.f32 alpha 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 alpha) alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)) 3) (pow.f32 (*.f32 alpha alpha) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 (*.f32 alpha alpha) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 (*.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 alpha (*.f32 alpha u0) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha alpha) u0 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha alpha) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)) (*.f32 u0 (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) (*.f32 alpha alpha) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 u0) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 u0) 2) (*.f32 (cbrt.f32 u0) (*.f32 alpha alpha)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (pow.f32 alpha 4)) (*.f32 (pow.f32 (cbrt.f32 alpha) 2) u0) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (cbrt.f32 (pow.f32 alpha 4)) (*.f32 (pow.f32 (cbrt.f32 alpha) 2) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) 2) (*.f32 (cbrt.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 u0) (*.f32 (sqrt.f32 u0) (*.f32 alpha alpha)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2))) (*.f32 (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2))) (*.f32 alpha alpha)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (*.f32 alpha alpha)) (*.f32 u0 (fma.f32 u0 1/3 1/2)) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (*.f32 alpha alpha)) 1 (*.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))) (cbrt.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))) (cbrt.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (*.f32 u0 (*.f32 alpha alpha))) (cbrt.f32 (*.f32 u0 (*.f32 alpha alpha)))) (cbrt.f32 (*.f32 u0 (*.f32 alpha alpha))) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))) (sqrt.f32 (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 u0 (*.f32 alpha alpha))) (sqrt.f32 (*.f32 u0 (*.f32 alpha alpha))) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2))) alpha) (*.f32 (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2))) alpha) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (sqrt.f32 u0) alpha) (*.f32 (sqrt.f32 u0) alpha) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (sqrt.f32 u0)) (*.f32 alpha (sqrt.f32 u0)) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 alpha (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2)))) (*.f32 alpha (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2)))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 alpha) alpha (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) alpha) alpha (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) (cbrt.f32 (pow.f32 alpha 4))) (pow.f32 (cbrt.f32 alpha) 2) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (cbrt.f32 (pow.f32 alpha 4))) (pow.f32 (cbrt.f32 alpha) 2) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 (cbrt.f32 u0) 2)) (cbrt.f32 u0) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha alpha) (sqrt.f32 u0)) (sqrt.f32 u0) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 1/3 1/2))) u0 (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 u0)) (fma.f32 u0 1/3 1/2) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha alpha) (pow.f32 (cbrt.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) 2)) (cbrt.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2)))) (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2))) (*.f32 u0 (*.f32 alpha alpha)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (*.f32 alpha alpha) (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 u0 1/2) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 u0 (*.f32 u0 1/3)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 u0 1/2) 1) (*.f32 (*.f32 u0 (*.f32 u0 1/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (pow.f32 (*.f32 u0 1/2) 3) (pow.f32 (*.f32 u0 (*.f32 u0 1/3)) 3)) (fma.f32 (*.f32 u0 1/2) (*.f32 u0 1/2) (-.f32 (*.f32 (*.f32 u0 (*.f32 u0 1/3)) (*.f32 u0 (*.f32 u0 1/3))) (*.f32 (*.f32 u0 1/2) (*.f32 u0 (*.f32 u0 1/3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (*.f32 (*.f32 u0 1/2) (*.f32 u0 1/2)) (*.f32 (*.f32 u0 (*.f32 u0 1/3)) (*.f32 u0 (*.f32 u0 1/3)))) (-.f32 (*.f32 u0 1/2) (*.f32 u0 (*.f32 u0 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (fma.f32 1/27 (pow.f32 u0 3) 1/8) u0) (fma.f32 (*.f32 u0 1/3) (fma.f32 u0 1/3 -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1/4 (*.f32 (*.f32 u0 u0) 1/9)) u0) (-.f32 1/2 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 u0 (fma.f32 1/27 (pow.f32 u0 3) 1/8)) (fma.f32 (*.f32 u0 1/3) (fma.f32 u0 1/3 -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 u0 (-.f32 1/4 (*.f32 (*.f32 u0 u0) 1/9))) (-.f32 1/2 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 (fma.f32 u0 1/3 1/2)) u0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 u0 3) (pow.f32 (fma.f32 u0 1/3 1/2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (fma.f32 u0 1/3 1/2) 3) (pow.f32 u0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 (*.f32 u0 1/3) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 1/2 (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 1/3) u0 (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1/2 u0 (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 u0 1/2) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1 (*.f32 u0 (*.f32 u0 1/3)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 u0) 1/3 (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 u0) 2) (*.f32 (cbrt.f32 u0) 1/2) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 u0) 2) (*.f32 (cbrt.f32 u0) (*.f32 u0 1/3)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (pow.f32 (cbrt.f32 (*.f32 u0 1/3)) 2) (*.f32 (cbrt.f32 (*.f32 u0 1/3)) u0) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 u0) (*.f32 (sqrt.f32 u0) 1/2) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 u0) (*.f32 (sqrt.f32 u0) (*.f32 u0 1/3)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 u0 1/3)) (*.f32 (sqrt.f32 (*.f32 u0 1/3)) u0) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 1/2) 1 (*.f32 (*.f32 u0 (*.f32 u0 1/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (*.f32 u0 1/2)) (cbrt.f32 (*.f32 u0 1/2))) (cbrt.f32 (*.f32 u0 1/2)) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (cbrt.f32 (*.f32 u0 (*.f32 u0 1/3))) (cbrt.f32 (*.f32 u0 (*.f32 u0 1/3)))) (cbrt.f32 (*.f32 u0 (*.f32 u0 1/3))) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 u0 1/2)) (sqrt.f32 (*.f32 u0 1/2)) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (sqrt.f32 (*.f32 u0 (*.f32 u0 1/3))) (sqrt.f32 (*.f32 u0 (*.f32 u0 1/3))) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (sqrt.f32 (*.f32 u0 1/3)) (sqrt.f32 u0)) (*.f32 (sqrt.f32 (*.f32 u0 1/3)) (sqrt.f32 u0)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (sqrt.f32 u0) (sqrt.f32 (*.f32 u0 1/3))) (*.f32 (sqrt.f32 u0) (sqrt.f32 (*.f32 u0 1/3))) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 u0 1/3) (pow.f32 (cbrt.f32 u0) 2)) (cbrt.f32 u0) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 (*.f32 u0 1/3) (sqrt.f32 u0)) (sqrt.f32 u0) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 (pow.f32 (cbrt.f32 u0) 2)) (cbrt.f32 u0) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 1/2 (sqrt.f32 u0)) (sqrt.f32 u0) (*.f32 u0 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (pow.f32 (cbrt.f32 (*.f32 u0 1/3)) 2)) (cbrt.f32 (*.f32 u0 1/3)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 (sqrt.f32 (*.f32 u0 1/3))) (sqrt.f32 (*.f32 u0 1/3)) (*.f32 u0 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 u0 1/2) u0) (*.f32 (*.f32 u0 (*.f32 u0 1/3)) u0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 u0 1/3) (*.f32 u0 u0)) (*.f32 1/2 (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 1/2 (*.f32 u0 u0)) (*.f32 (*.f32 u0 1/3) (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 u0 (*.f32 u0 1/2)) (*.f32 u0 (*.f32 u0 (*.f32 u0 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 u0 u0) (*.f32 u0 1/3)) (*.f32 (*.f32 u0 u0) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (*.f32 u0 u0) 1/2) (*.f32 (*.f32 u0 u0) (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 u0 u0) (fma.f32 1/27 (pow.f32 u0 3) 1/8)) (fma.f32 (*.f32 u0 1/3) (fma.f32 u0 1/3 -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 u0 u0) (-.f32 1/4 (*.f32 (*.f32 u0 u0) 1/9))) (-.f32 1/2 (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 u0 (sqrt.f32 (fma.f32 u0 1/3 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 (*.f32 u0 u0)) (fma.f32 u0 1/3 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 u0 (*.f32 u0 1/2) (*.f32 u0 (*.f32 u0 (*.f32 u0 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 1/3) (*.f32 u0 u0) (*.f32 1/2 (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 1/2 (*.f32 u0 u0) (*.f32 (*.f32 u0 1/3) (*.f32 u0 u0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 u0) (*.f32 u0 1/3) (*.f32 (*.f32 u0 u0) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 u0) 1/2 (*.f32 (*.f32 u0 u0) (*.f32 u0 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f32 (*.f32 u0 1/2) u0 (*.f32 (*.f32 u0 (*.f32 u0 1/3)) u0))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0))))))))

simplify78.0ms (2.4%)

Algorithm
egg-herbie
Rules
996×fma-def_binary32
960×unswap-sqr_binary32
372×*-commutative_binary32
196×sqr-pow_binary32
182×distribute-lft-out_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
030813
178692
2202663
3716663
41805663
53089663
63438663
73574663
83670663
93787663
103950663
Stop Event
node limit
Counts
212 → 176
Calls
Call 1
Inputs
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 u0 (pow.f32 alpha 2))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 1/2 u0)
(+.f32 (*.f32 1/3 (pow.f32 u0 2)) (*.f32 1/2 u0))
(+.f32 (*.f32 1/3 (pow.f32 u0 2)) (*.f32 1/2 u0))
(+.f32 (*.f32 1/3 (pow.f32 u0 2)) (*.f32 1/2 u0))
(*.f32 1/3 (pow.f32 u0 2))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(*.f32 1/3 (pow.f32 u0 2))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(*.f32 1/2 (pow.f32 u0 2))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 1/3 (pow.f32 u0 3))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 1/3 (pow.f32 u0 3))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
Outputs
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 1/3 u0)
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 (+.f32 u0 (*.f32 (pow.f32 u0 2) (+.f32 1/2 (*.f32 1/3 u0)))) (pow.f32 alpha 2))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 u0 (pow.f32 alpha 2))
(*.f32 u0 (*.f32 alpha alpha))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(fma.f32 u0 (*.f32 alpha alpha) (*.f32 (*.f32 (*.f32 u0 u0) 1/2) (*.f32 alpha alpha)))
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (*.f32 (*.f32 u0 u0) 1/2)))
(*.f32 alpha (*.f32 alpha (fma.f32 (*.f32 u0 u0) 1/2 u0)))
(*.f32 alpha (*.f32 alpha (*.f32 u0 (fma.f32 u0 1/2 1))))
(*.f32 u0 (*.f32 (fma.f32 u0 1/2 1) (*.f32 alpha alpha)))
(*.f32 u0 (*.f32 (*.f32 alpha alpha) (fma.f32 u0 1/2 1)))
(*.f32 (*.f32 u0 (*.f32 alpha alpha)) (fma.f32 u0 1/2 1))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
(*.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (*.f32 (*.f32 (*.f32 u0 u0) 1/2) (*.f32 alpha alpha)))
(*.f32 (*.f32 alpha alpha) (*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2)))
(*.f32 (*.f32 u0 u0) (*.f32 (fma.f32 1/3 u0 1/2) (*.f32 alpha alpha)))
(*.f32 (fma.f32 1/3 u0 1/2) (*.f32 u0 (*.f32 u0 (*.f32 alpha alpha))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
(*.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)))
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))))
(fma.f32 1/3 (*.f32 (*.f32 alpha alpha) (pow.f32 u0 3)) (*.f32 (*.f32 (*.f32 u0 u0) 1/2) (*.f32 alpha alpha)))
(*.f32 (*.f32 alpha alpha) (*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2)))
(*.f32 (*.f32 u0 u0) (*.f32 (fma.f32 1/3 u0 1/2) (*.f32 alpha alpha)))
(*.f32 (fma.f32 1/3 u0 1/2) (*.f32 u0 (*.f32 u0 (*.f32 alpha alpha))))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)))))
(*.f32 (+.f32 u0 (*.f32 (*.f32 u0 u0) (+.f32 (*.f32 1/3 u0) 1/2))) (*.f32 alpha alpha))
(*.f32 (fma.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2) u0) (*.f32 alpha alpha))
(*.f32 (fma.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)) u0) (*.f32 alpha alpha))
(*.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 1/3 u0 1/2) 1)) (*.f32 alpha alpha))
(*.f32 1/2 u0)
(*.f32 u0 1/2)
(+.f32 (*.f32 1/3 (pow.f32 u0 2)) (*.f32 1/2 u0))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(+.f32 (*.f32 1/3 (pow.f32 u0 2)) (*.f32 1/2 u0))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(+.f32 (*.f32 1/3 (pow.f32 u0 2)) (*.f32 1/2 u0))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(*.f32 1/3 (pow.f32 u0 2))
(*.f32 1/3 (*.f32 u0 u0))
(*.f32 u0 (*.f32 1/3 u0))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(*.f32 1/3 (pow.f32 u0 2))
(*.f32 1/3 (*.f32 u0 u0))
(*.f32 u0 (*.f32 1/3 u0))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(+.f32 (*.f32 1/2 u0) (*.f32 1/3 (pow.f32 u0 2)))
(fma.f32 1/3 (*.f32 u0 u0) (*.f32 u0 1/2))
(fma.f32 u0 1/2 (*.f32 1/3 (*.f32 u0 u0)))
(*.f32 u0 (fma.f32 1/3 u0 1/2))
(*.f32 1/2 (pow.f32 u0 2))
(*.f32 (*.f32 u0 u0) 1/2)
(*.f32 u0 (*.f32 u0 1/2))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(*.f32 1/3 (pow.f32 u0 3))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(*.f32 1/3 (pow.f32 u0 3))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))
(+.f32 (*.f32 1/2 (pow.f32 u0 2)) (*.f32 1/3 (pow.f32 u0 3)))
(fma.f32 1/2 (*.f32 u0 u0) (*.f32 1/3 (pow.f32 u0 3)))
(*.f32 (*.f32 u0 u0) (fma.f32 1/3 u0 1/2))
(*.f32 u0 (*.f32 u0 (fma.f32 1/3 u0 1/2)))

prune251.0ms (7.8%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1715176
Fresh303
Picked101
Done022
Total1757182
Error
0.1b
Counts
182 → 7
Alt Table
StatusErrorProgram
1.7b
(+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (+.f32 (*.f32 u0 (pow.f32 alpha 2)) (+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 1/2 (pow.f32 (cbrt.f32 (pow.f32 (*.f32 u0 alpha) 2)) 3)))))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.1b
(fma.f32 alpha (*.f32 alpha u0) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))
2.1b
(fma.f32 u0 (*.f32 alpha alpha) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))
2.3b
(sqrt.f32 (*.f32 (pow.f32 (*.f32 u0 (fma.f32 u0 (fma.f32 u0 1/3 1/2) 1)) 2) (pow.f32 alpha 4)))
2.3b
(/.f32 (*.f32 (+.f32 (pow.f32 u0 3) (pow.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) 3)) (*.f32 alpha alpha)) (fma.f32 u0 u0 (*.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) (-.f32 (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)) u0))))
2.5b
(fma.f32 (*.f32 (cbrt.f32 (*.f32 u0 (*.f32 alpha alpha))) (cbrt.f32 (*.f32 u0 (*.f32 alpha alpha)))) (cbrt.f32 (*.f32 u0 (*.f32 alpha alpha))) (*.f32 alpha (*.f32 alpha (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))
Compiler

Compiled 3666 to 1941 computations (47.1% saved)

regimes107.0ms (3.3%)

Accuracy

Total -3.1b remaining (-946.5%)

Threshold costs -3.1b (-946.5%)

Counts
33 → 1
Compiler

Compiled 721 to 421 computations (41.6% 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)))

end89.0ms (2.7%)

Stop Event
fuel
Compiler

Compiled 187 to 103 computations (44.9% saved)

Profiling

Loading profile data...