Details

Time bar (total: 6.8s)

analyze616.0ms (9.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
12.5%87.4%0.1%5
18.7%81.1%0.1%6
21.8%71.8%6.4%7
31.2%62.4%6.4%8
35.9%55.4%8.7%9
37.8%48.8%13.4%10
42.7%42.3%15%11
47.7%34.2%18.1%12
49.1%30.4%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.3s (34.4%)

Results
752.0ms5400×body128valid
616.0ms1186×body2048valid
294.0ms714×body1024valid
274.0ms426×body4096valid
142.0ms1101×body128invalid
131.0ms361×body512valid
38.0ms169×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify61.0ms (0.9%)

Algorithm
egg-herbie
Rules
993×fma-def_binary64
557×rules-5-rev_binary64
372×rules-4-rev_binary64
342×rules-20_binary64
321×rules-33_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01526
13526
27824
325224
4106322
5365322
6453722
7516922

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 74 computations (33.3% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.4b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
0.8b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
26.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series120.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

50.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
33.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
28.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
9.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite112.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
840×prod-diff_binary64
158×egg-rr
133×add-sqr-sqrt_binary64
127×log1p-expm1-u_binary64
127×expm1-log1p-u_binary64
Counts
4 → 158
Calls

4 calls:

108.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))
108.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
108.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
108.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01362
130962
2376262
3526162
000
100

simplify71.0ms (1.1%)

Algorithm
egg-herbie
Rules
733×fma-def_binary64
475×rules-13_binary64
452×rules-20_binary64
339×rules-14-rev_binary64
282×fma-neg_binary64
Counts
254 → 229
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01162110
14001921
216711909
352011909

prune171.0ms (2.5%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2209229
Fresh101
Picked011
Done000
Total22110231
Error
8.4b
Counts
231 → 10
Alt Table
StatusErrorProgram
47.8b
(neg.f64 (fma.f64 a (/.f64 (*.f64 c c) (pow.f64 b 3)) (/.f64 c b)))
34.4b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
46.7b
(/.f64 (+.f64 b (/.f64 (fma.f64 b (*.f64 b 1/2) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4))))) (*.f64 a -2))
42.7b
(/.f64 c (neg.f64 b))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
44.9b
(/.f64 (neg.f64 b) a)
34.9b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) 2) (/.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (*.f64 a -2)))
34.4b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
35.2b
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
56.3b
(/.f64 (+.f64 b (neg.f64 b)) (*.f64 a -2))
Compiler

Compiled 6135 to 3657 computations (40.4% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (*.f64 a -2))
0.2b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
0.8b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
26.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series55.0ms (0.8%)

Counts
2 → 32
Calls

2 calls:

54.0ms
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
1.0ms
(/.f64 1 (*.f64 a -2))

rewrite90.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
899×prod-diff_binary64
148×add-sqr-sqrt_binary64
140×log1p-expm1-u_binary64
140×expm1-log1p-u_binary64
138×add-cbrt-cube_binary64
Counts
2 → 115
Calls

2 calls:

87.0ms
(/.f64 1 (*.f64 a -2))
87.0ms
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01529
135226
2424026
3584326
000
100

simplify59.0ms (0.9%)

Algorithm
egg-herbie
Rules
910×fma-neg_binary64
280×fma-def_binary64
198×rules-20_binary64
184×rules-13_binary64
173×rules-4_binary64
Counts
147 → 139
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
067597
1216561
2759555
34311555
45249555

prune264.0ms (3.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2551256
Fresh088
Picked011
Done011
Total25511266
Error
8.4b
Counts
266 → 11
Alt Table
StatusErrorProgram
47.8b
(neg.f64 (fma.f64 a (/.f64 (*.f64 c c) (pow.f64 b 3)) (/.f64 c b)))
34.4b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
46.7b
(/.f64 (+.f64 b (/.f64 (fma.f64 b (*.f64 b 1/2) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4))))) (*.f64 a -2))
45.2b
(*.f64 (+.f64 b b) (/.f64 1 (*.f64 a -2)))
42.7b
(/.f64 c (neg.f64 b))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
44.9b
(/.f64 (neg.f64 b) a)
34.9b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) 2) (/.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (*.f64 a -2)))
34.4b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
35.2b
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
56.3b
(/.f64 (+.f64 b (neg.f64 b)) (*.f64 a -2))
Compiler

Compiled 7521 to 4644 computations (38.3% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
0.5b
(/.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (*.f64 a -2))
0.8b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
26.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series501.0ms (7.4%)

Counts
2 → 40
Calls

2 calls:

327.0ms
(/.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (*.f64 a -2))
173.0ms
(cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))

rewrite76.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
868×prod-diff_binary64
141×add-sqr-sqrt_binary64
134×log1p-expm1-u_binary64
134×expm1-log1p-u_binary64
132×add-cbrt-cube_binary64
Counts
2 → 61
Calls

2 calls:

74.0ms
(cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
74.0ms
(/.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (*.f64 a -2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01442
132942
2398842
3552742
000
100

simplify72.0ms (1.1%)

Algorithm
egg-herbie
Rules
961×rules-13_binary64
400×fma-neg_binary64
399×rules-14-rev_binary64
325×rules-21_binary64
232×rules-20_binary64
Counts
101 → 125
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02102408
17002252
229752132
367872132

prune372.0ms (5.5%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New4221423
Fresh088
Picked101
Done022
Total42311434
Error
8.4b
Counts
434 → 11
Alt Table
StatusErrorProgram
47.8b
(neg.f64 (fma.f64 a (/.f64 (*.f64 c c) (pow.f64 b 3)) (/.f64 c b)))
34.4b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
46.7b
(/.f64 (+.f64 b (/.f64 (fma.f64 b (*.f64 b 1/2) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4))))) (*.f64 a -2))
45.2b
(*.f64 (+.f64 b b) (/.f64 1 (*.f64 a -2)))
42.7b
(/.f64 c (neg.f64 b))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
44.9b
(/.f64 (neg.f64 b) a)
34.4b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
35.2b
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
46.6b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) 2) (*.f64 -1/2 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 a c) -4))) a)))
56.3b
(/.f64 (+.f64 b (neg.f64 b)) (*.f64 a -2))
Compiler

Compiled 18960 to 11986 computations (36.8% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
0.5b
(pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)
9.3b
(+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2))
26.7b
(pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4)

series187.0ms (2.8%)

Counts
4 → 112
Calls

4 calls:

58.0ms
(pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)
53.0ms
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
42.0ms
(pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4)
33.0ms
(+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2))

rewrite96.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
598×prod-diff_binary64
154×add-sqr-sqrt_binary64
154×log1p-expm1-u_binary64
154×expm1-log1p-u_binary64
147×egg-rr
Counts
4 → 147
Calls

4 calls:

92.0ms
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
92.0ms
(pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)
92.0ms
(+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2))
92.0ms
(pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01668
138465
2428765
3523765
000
100

simplify118.0ms (1.7%)

Algorithm
egg-herbie
Rules
330×fma-def_binary64
306×rules-4_binary64
297×rules-20_binary64
245×rules-13_binary64
234×rules-6_binary64
Counts
259 → 299
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03485061
111914852
249974852
350184852

prune233.0ms (3.5%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New2963299
Fresh358
Picked011
Done022
Total29911310
Error
1.2b
Counts
310 → 11
Alt Table
StatusErrorProgram
47.8b
(neg.f64 (fma.f64 a (/.f64 (*.f64 c c) (pow.f64 b 3)) (/.f64 c b)))
34.4b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 a -2))
42.7b
(/.f64 c (neg.f64 b))
51.4b
(/.f64 (+.f64 b (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 4 c))) (log.f64 (/.f64 1 a))))) 2)) (*.f64 a -2))
46.7b
(/.f64 (+.f64 b (/.f64 (fma.f64 b (*.f64 b 1/2) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4))))) (*.f64 a -2))
52.1b
(/.f64 (+.f64 b (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 a -2))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
34.4b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 (*.f64 a -2)))
35.2b
(/.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) (*.f64 a -2))
46.6b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) 2) (*.f64 -1/2 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 a c) -4))) a)))
52.5b
(/.f64 (+.f64 b (pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (*.f64 a -4)) (neg.f64 (log.f64 c)))) 2)) (*.f64 a -2))
Compiler

Compiled 10481 to 6849 computations (34.7% saved)

regimes870.0ms (12.9%)

Accuracy

Total 9.6b remaining (91.6%)

Threshold costs 0b (0%)

Counts
72 → 3
Compiler

Compiled 5680 to 4110 computations (27.6% saved)

bsearch81.0ms (1.2%)

Steps
ItersRangePoint
9
5.329808561740872e+92
4.6543464877957586e+98
2.1532958080945476e+95
8
-1.4483942438908369e-12
-3.56303397615803e-15
-3.62263644777804e-15
Compiler

Compiled 4 to 3 computations (25% saved)

simplify1.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02652
12652

end156.0ms (2.3%)

Compiler

Compiled 292 to 206 computations (29.5% saved)

Profiling

Loading profile data...