Details

Time bar (total: 10.5s)

analyze655.0ms (6.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 43 to 31 computations (27.9% saved)

sample4.5s (42.6%)

Results
2.0s3945×body256valid
1.1s1506×body512valid
1.1s2805×body128valid
218.0ms838×body128invalid
Compiler

Compiled 106 to 76 computations (28.3% saved)

simplify364.0ms (3.5%)

Algorithm
egg-herbie
Rules
1968×fma-neg_binary64
1363×fma-def_binary64
898×div-sub_binary64
743×associate-/l*_binary64
567×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26422
313522
420122
533522
655422
792922
8147722
9211522
10259922
11255422
12260222
13267122
14311722
15232722
16237522
17238322
18238922
19239522
20239722
21239722
22258522
23268522
24261922
25263122
26266122
27267722
28270722
29270722
30275122
31285122
32282722
33282722
34263822

prune7.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
52.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
52.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
52.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
0.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
0.3b
(*.f64 (*.f64 3 a) c)
24.0b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))

series293.0ms (2.8%)

Counts
4 → 100
Calls

4 calls:

163.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
100.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
21.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
9.0ms
(*.f64 (*.f64 3 a) c)

rewrite171.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
725×fma-def_binary64
366×fma-neg_binary64
285×egg-rr
248×expm1-udef_binary64
248×log1p-udef_binary64
Counts
4 → 285
Calls

4 calls:

157.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
157.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
157.0ms
(*.f64 (*.f64 3 a) c)
157.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01366
129756
2376956
3548056
000
100

simplify126.0ms (1.2%)

Algorithm
egg-herbie
Rules
744×times-frac_binary64
459×associate-/l*_binary64
396×associate-/r*_binary64
333×fma-def_binary64
308×fma-neg_binary64
Counts
385 → 338
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01191940
13681868
212401839
349081833
450681833

prune419.0ms (4%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New3344338
Fresh011
Picked011
Done000
Total3346340
Error
0.2b
Counts
340 → 6
Alt Table
StatusErrorProgram
52.1b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (*.f64 3 a))
52.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
52.6b
(/.f64 (/.f64 (-.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))) (*.f64 3 a))
52.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
1.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
2.3b
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
Compiler

Compiled 10144 to 5547 computations (45.3% saved)

localize52.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
0.4b
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
0.4b
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
0.4b
(*.f64 (pow.f64 a 3) (pow.f64 c 4))

series505.0ms (4.8%)

Counts
4 → 132
Calls

4 calls:

185.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
162.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
122.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
36.0ms
(*.f64 (pow.f64 a 3) (pow.f64 c 4))

rewrite115.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
224×add-sqr-sqrt_binary64
220×log1p-expm1-u_binary64
220×expm1-log1p-u_binary64
213×add-cbrt-cube_binary64
212×add-log-exp_binary64
Counts
4 → 123
Calls

4 calls:

110.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
110.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
110.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
110.0ms
(*.f64 (pow.f64 a 3) (pow.f64 c 4))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02255
148755
2493455
3505755
000
100

simplify227.0ms (2.2%)

Algorithm
egg-herbie
Rules
735×associate-*l*_binary64
679×associate-/r*_binary64
308×associate-/l/_binary64
297×associate-/r/_binary64
285×unswap-sqr_binary64
Counts
255 → 129
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0231860
1651860
22121860
310101860
441381860
542301860
644161860
747051860
849741860
949041860

prune367.0ms (3.5%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1290129
Fresh044
Picked011
Done011
Total1296135
Error
0.2b
Counts
135 → 6
Alt Table
StatusErrorProgram
52.1b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (*.f64 3 a))
52.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
52.6b
(/.f64 (/.f64 (-.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))) (*.f64 3 a))
52.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
1.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
2.3b
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
Compiler

Compiled 6286 to 3856 computations (38.7% saved)

localize54.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
0.4b
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
0.4b
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
0.5b
(*.f64 (*.f64 c a) (*.f64 c a))

series349.0ms (3.3%)

Counts
4 → 96
Calls

4 calls:

153.0ms
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
137.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
37.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
21.0ms
(*.f64 (*.f64 c a) (*.f64 c a))

rewrite83.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
356×log1p-expm1-u_binary64
356×expm1-log1p-u_binary64
343×add-cbrt-cube_binary64
340×add-log-exp_binary64
339×add-exp-log_binary64
Counts
4 → 65
Calls

4 calls:

80.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
80.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
80.0ms
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
80.0ms
(*.f64 (*.f64 c a) (*.f64 c a))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03493
177593
2523993
000
100

simplify171.0ms (1.6%)

Algorithm
egg-herbie
Rules
953×fma-neg_binary64
399×distribute-rgt-neg-in_binary64
323×unswap-sqr_binary64
280×times-frac_binary64
262×distribute-neg-frac_binary64
Counts
161 → 82
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0502262
11552262
25432208
327332208
448142208
549972208

prune218.0ms (2.1%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New82082
Fresh033
Picked011
Done022
Total82688
Error
0.2b
Counts
88 → 6
Alt Table
StatusErrorProgram
52.1b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (*.f64 3 a))
52.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
52.6b
(/.f64 (/.f64 (-.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))) (*.f64 3 a))
52.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
1.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
2.3b
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
Compiler

Compiled 4215 to 2736 computations (35.1% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))
0.1b
(fma.f64 -3 (*.f64 a c) (*.f64 b b))
0.3b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (*.f64 3 a))
52.4b
(fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))

series376.0ms (3.6%)

Counts
4 → 78
Calls

4 calls:

166.0ms
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (*.f64 3 a))
110.0ms
(fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))
79.0ms
(sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))
20.0ms
(fma.f64 -3 (*.f64 a c) (*.f64 b b))

rewrite145.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
352×prod-diff_binary64
244×expm1-udef_binary64
244×log1p-udef_binary64
224×log-pow_binary64
149×add-sqr-sqrt_binary64
Counts
4 → 125
Calls

4 calls:

139.0ms
(sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))
139.0ms
(fma.f64 -3 (*.f64 a c) (*.f64 b b))
139.0ms
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (*.f64 3 a))
139.0ms
(fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01576
130862
2332159
3492859
4495359
000
100

simplify94.0ms (0.9%)

Algorithm
egg-herbie
Rules
657×times-frac_binary64
429×associate-/l*_binary64
362×associate-/r*_binary64
349×associate-*l*_binary64
274×fma-def_binary64
Counts
203 → 173
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01091595
13261537
210941509
351041509

prune174.0ms (1.7%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1712173
Fresh022
Picked101
Done033
Total1727179
Error
0.2b
Counts
179 → 7
Alt Table
StatusErrorProgram
52.2b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)) 3)))) (*.f64 3 a))
52.6b
(/.f64 (/.f64 (-.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))) (*.f64 3 a))
52.4b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))) 3))) (*.f64 3 a))
52.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
1.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
2.3b
(/.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (*.f64 3 a))
52.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
Compiler

Compiled 4309 to 2429 computations (43.6% saved)

regimes669.0ms (6.4%)

Accuracy

Total 1.3b remaining (86%)

Threshold costs 0b (0%)

Counts
53 → 1
Compiler

Compiled 9236 to 6386 computations (30.9% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03161
13661
23661

end354.0ms (3.4%)

Compiler

Compiled 308 to 209 computations (32.1% saved)

Profiling

Loading profile data...