Details

Time bar (total: 9.7s)

analyze401.0ms (4.2%)

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

Compiled 39 to 31 computations (20.5% saved)

sample2.1s (22.1%)

Results
2.1s8256×body128valid
2.0msbody128invalid
Compiler

Compiled 94 to 76 computations (19.1% saved)

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
40×fma-neg_binary32
22×sub-neg_binary32
17×cancel-sign-sub-inv_binary32
13×fma-def_binary32
10×*-commutative_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01422
12621
23921
34921
46021
57421
69221
711921
814921
916221
1018421
1120621
1224521
1326221
1426821
1526921
Stop Event
saturated
Counts
1 → 2

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.2b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
Compiler

Compiled 58 to 49 computations (15.5% saved)

localize33.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1))))
0.1b
(cos.f32 (*.f32 2 (*.f32 (PI.f32) u2)))
0.1b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.3b
(*.f32 (PI.f32) u2)

series184.0ms (1.9%)

Counts
4 → 32
Calls

4 calls:

139.0ms
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
40.0ms
(sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1))))
2.0ms
(cos.f32 (*.f32 2 (*.f32 (PI.f32) u2)))
2.0ms
(*.f32 (PI.f32) u2)

rewrite53.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
679×prod-diff_binary32
204×expm1-udef_binary32
204×log1p-udef_binary32
132×add-sqr-sqrt_binary32
124×expm1-log1p-u_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01345
126637
2327537
Stop Event
node limit
Counts
4 → 96
Calls

4 calls:

51.0ms
(sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1))))
51.0ms
(cos.f32 (*.f32 2 (*.f32 (PI.f32) u2)))
51.0ms
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
51.0ms
(*.f32 (PI.f32) u2)

simplify43.0ms (0.4%)

Algorithm
egg-herbie
Rules
538×cancel-sign-sub-inv_binary32
348×times-frac_binary32
276×associate-*l/_binary32
247×associate-/r*_binary32
218×associate-/l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01791948
15711783
220971637
Stop Event
node limit
Counts
128 → 144

prune214.0ms (2.2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New13113144
Fresh000
Picked011
Done000
Total13114145
Error
0.0b
Counts
145 → 14
Alt Table
StatusErrorProgram
12.1b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (log1p.f32 u1)))) 1) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (/.f32 (-.f32 (pow.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) 3) (pow.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 3)) (+.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (+.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))))
0.2b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 u2 2))))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
1.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (pow.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 u2 2))) 3) 1/3))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (log.f32 (pow.f32 (exp.f32 u2) (PI.f32))))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
8.2b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
8.2b
(*.f32 (cbrt.f32 (pow.f32 (log1p.f32 u1) 3/2)) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 1 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))) (fma.f32 (neg.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) 1 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))))
8.2b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
Compiler

Compiled 5523 to 3427 computations (38% saved)

localize47.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
0.2b
(log1p.f32 (*.f32 (PI.f32) u2))
0.3b
(*.f32 (PI.f32) u2)
13.7b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1)

series650.0ms (6.7%)

Counts
3 → 44
Calls

3 calls:

589.0ms
(-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1)
57.0ms
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
5.0ms
(log1p.f32 (*.f32 (PI.f32) u2))

rewrite61.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
994×prod-diff_binary32
156×add-sqr-sqrt_binary32
150×expm1-log1p-u_binary32
148×log1p-expm1-u_binary32
144×add-cbrt-cube_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01733
132929
2396229
Stop Event
node limit
Counts
3 → 79
Calls

3 calls:

59.0ms
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
59.0ms
(log1p.f32 (*.f32 (PI.f32) u2))
59.0ms
(-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1)

simplify60.0ms (0.6%)

Algorithm
egg-herbie
Rules
839×fma-def_binary32
565×cancel-sign-sub-inv_binary32
199×fma-neg_binary32
174×sub-neg_binary32
161×times-frac_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02272736
17642443
230242250
Stop Event
node limit
Counts
123 → 148

prune384.0ms (4%)

Pruning

14 alts after pruning (12 fresh and 2 done)

PrunedKeptTotal
New1630163
Fresh01212
Picked011
Done011
Total16314177
Error
0.0b
Counts
177 → 14
Alt Table
StatusErrorProgram
12.1b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (log1p.f32 u1)))) 1) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (/.f32 (-.f32 (pow.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) 3) (pow.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 3)) (+.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (+.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))))
0.2b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 u2 2))))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
1.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (pow.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 u2 2))) 3) 1/3))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (log.f32 (pow.f32 (exp.f32 u2) (PI.f32))))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
8.2b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
8.2b
(*.f32 (cbrt.f32 (pow.f32 (log1p.f32 u1) 3/2)) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 1 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))) (fma.f32 (neg.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) 1 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))))
8.2b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
Compiler

Compiled 6094 to 3792 computations (37.8% saved)

localize80.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
0.5b
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)
0.5b
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))
29.1b
(fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))

series156.0ms (1.6%)

Counts
4 → 38
Calls

4 calls:

107.0ms
(fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))
35.0ms
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))
7.0ms
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
6.0ms
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)

rewrite52.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
787×expm1-log1p-u_binary32
602×prod-diff_binary32
106×add-sqr-sqrt_binary32
102×log1p-expm1-u_binary32
100×add-cbrt-cube_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01276
124454
2262254
Stop Event
node limit
Counts
4 → 84
Calls

4 calls:

50.0ms
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
50.0ms
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)
50.0ms
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))
50.0ms
(fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))

simplify28.0ms (0.3%)

Algorithm
egg-herbie
Rules
631×cancel-sign-sub-inv_binary32
620×fma-def_binary32
433×*-commutative_binary32
377×unswap-sqr_binary32
354×fma-neg_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
042530
1109520
2302516
31486516
Stop Event
node limit
Counts
122 → 82

prune1.6s (16.5%)

Pruning

14 alts after pruning (12 fresh and 2 done)

PrunedKeptTotal
New3954399
Fresh3811
Picked101
Done022
Total39914413
Error
0.0b
Counts
413 → 14
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (pow.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) u2))) 2) 3))))
8.2b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (pow.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
12.1b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (log1p.f32 u1)))) 1) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (/.f32 (-.f32 (pow.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) 3) (pow.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 3)) (+.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (+.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))))
0.2b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (log.f32 (exp.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 4))))))))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 u2 2))))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) 0))
8.2b
(*.f32 (cbrt.f32 (pow.f32 (log1p.f32 u1) 3/2)) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (log.f32 (pow.f32 (exp.f32 u2) (PI.f32))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))) (fma.f32 (neg.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) 1 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))))
8.2b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
Compiler

Compiled 37490 to 16945 computations (54.8% saved)

localize73.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (PI.f32) u2)
0.4b
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
0.5b
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)
0.5b
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))

prune591.0ms (6.1%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New1982200
Fresh2911
Picked101
Done022
Total20113214
Error
0.0b
Counts
214 → 13
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (pow.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
12.1b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (log1p.f32 u1)))) 1) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.2b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (log.f32 (exp.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 4))))))))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 u2 2))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (log.f32 (pow.f32 (exp.f32 u2) (PI.f32))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) 1)))))) 0))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 2 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) u2))) 1))))
8.2b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
8.2b
(*.f32 (cbrt.f32 (pow.f32 (log1p.f32 u1) 3/2)) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))) (fma.f32 (neg.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) 1 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2) 1))))
0.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) u2)) 3)) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) 0))
8.2b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
Compiler

Compiled 9716 to 4272 computations (56% saved)

regimes2.6s (26.5%)

Accuracy

Total 0.2b remaining (61.1%)

Threshold costs 0.2b (61.1%)

Counts
196 → 1
Compiler

Compiled 83220 to 54536 computations (34.5% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01525
12425
22825
33025
Stop Event
saturated

end242.0ms (2.5%)

Compiler

Compiled 481 to 335 computations (30.4% saved)

Profiling

Loading profile data...