Details

Time bar (total: 5.3s)

analyze705.0ms (13.3%)

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
0%99.9%0.1%5
18.7%81.1%0.1%6
26.5%67.1%6.4%7
35.1%58.5%6.4%8
41.3%49.9%8.7%9
46.4%40.2%13.4%10
50.8%34.2%15%11
55.2%26.7%18.1%12
57.4%22%20.6%13
59.8%17.9%22.3%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample1.7s (32%)

Results
1.5s8256×body128valid
177.0ms1056×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify37.0ms (0.7%)

Algorithm
egg-herbie
Rules
1122×fma-def_binary64
776×fma-neg_binary64
260×associate-/l*_binary64
249×cancel-sign-sub-inv_binary64
205×div-sub_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02258
14752
212352
330450
454650
599350
6205750
7356850
8483450
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
19.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
19.7b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
19.8b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
Compiler

Compiled 231 to 147 computations (36.4% saved)

localize21.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
0.8b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.0b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
24.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series106.0ms (2%)

Counts
4 → 96
Calls

4 calls:

35.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
34.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
29.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite71.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
243×expm1-udef_binary64
243×log1p-udef_binary64
167×egg-rr
147×add-sqr-sqrt_binary64
144×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01368
130156
2430256
Stop Event
node limit
Counts
4 → 167
Calls

4 calls:

67.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
67.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
67.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
67.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))

simplify44.0ms (0.8%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
293×fma-def_binary64
279×associate-*r*_binary64
278×associate-/l*_binary64
257×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0902213
12962123
29732035
Stop Event
node limit
Counts
263 → 226

prune460.0ms (8.7%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New3295334
Fresh011
Picked101
Done000
Total3306336
Error
4.5b
Counts
336 → 6
Alt Table
StatusErrorProgram
21.8b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
29.8b
(if (>=.f64 b 0) (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 4 (*.f64 a c)) 2)) (/.f64 1 (fma.f64 b b (*.f64 4 (*.f64 a c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
21.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
17.4b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
19.8b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
Compiler

Compiled 16387 to 9730 computations (40.6% saved)

localize20.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 4 a) c)
0.8b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.0b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
24.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

4.0ms
(*.f64 (*.f64 4 a) c)

rewrite29.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
512×log1p-expm1-u_binary64
512×expm1-log1p-u_binary64
377×unpow-prod-down_binary64
295×log-prod_binary64
153×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11227
214107
Stop Event
node limit
Counts
1 → 17
Calls

1 calls:

28.0ms
(*.f64 (*.f64 4 a) c)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
110168
217168
319168
Stop Event
saturated
Counts
41 → 19

prune255.0ms (4.8%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1932195
Fresh235
Picked101
Done000
Total1965201
Error
4.5b
Counts
201 → 5
Alt Table
StatusErrorProgram
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
29.8b
(if (>=.f64 b 0) (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 4 (*.f64 a c)) 2)) (/.f64 1 (fma.f64 b b (*.f64 4 (*.f64 a c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
19.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
19.8b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
Compiler

Compiled 8230 to 5113 computations (37.9% saved)

localize21.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 a (/.f64 c b)) b)
3.8b
(/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a))
5.9b
(*.f64 a (/.f64 c b))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series35.0ms (0.7%)

Counts
3 → 108
Calls

3 calls:

13.0ms
(*.f64 a (/.f64 c b))
13.0ms
(/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a))
8.0ms
(-.f64 (*.f64 a (/.f64 c b)) b)

rewrite74.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
742×prod-diff_binary64
202×egg-rr
128×add-sqr-sqrt_binary64
121×log1p-expm1-u_binary64
121×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01133
125130
2375030
Stop Event
node limit
Counts
3 → 202
Calls

3 calls:

69.0ms
(-.f64 (*.f64 a (/.f64 c b)) b)
69.0ms
(/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a))
69.0ms
(*.f64 a (/.f64 c b))

simplify102.0ms (1.9%)

Algorithm
egg-herbie
Rules
834×fma-def_binary64
601×fma-neg_binary64
345×div-sub_binary64
262×times-frac_binary64
218×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
013883
122883
234883
355883
487883
5162883
6334883
7538883
8896883
91454883
102228883
113161883
123982883
134232883
144262883
154288883
164288883
174288883
Stop Event
saturated
Counts
310 → 212

prune237.0ms (4.5%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New2120212
Fresh044
Picked011
Done000
Total2125217
Error
4.5b
Counts
217 → 5
Alt Table
StatusErrorProgram
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
29.8b
(if (>=.f64 b 0) (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 4 (*.f64 a c)) 2)) (/.f64 1 (fma.f64 b b (*.f64 4 (*.f64 a c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
19.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
19.8b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
Compiler

Compiled 7706 to 3949 computations (48.8% saved)

localize15.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series6.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

6.0ms
(/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a))

rewrite40.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
849×log1p-expm1-u_binary64
849×expm1-log1p-u_binary64
95×add-sqr-sqrt_binary64
90×add-cbrt-cube_binary64
88×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0812
118410
2291610
Stop Event
node limit
Counts
1 → 42
Calls

1 calls:

39.0ms
(/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a))

simplify16.0ms (0.3%)

Algorithm
egg-herbie
Rules
14×fma-def_binary64
sub-neg_binary64
+-commutative_binary64
fma-neg_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06144
110144
217144
323144
429144
537144
645144
755144
863144
977144
Stop Event
saturated
Counts
66 → 44

prune47.0ms (0.9%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New44044
Fresh033
Picked011
Done011
Total44549
Error
4.5b
Counts
49 → 5
Alt Table
StatusErrorProgram
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
29.8b
(if (>=.f64 b 0) (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 4 (*.f64 a c)) 2)) (/.f64 1 (fma.f64 b b (*.f64 4 (*.f64 a c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
19.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
19.8b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
Compiler

Compiled 1339 to 806 computations (39.8% saved)

regimes976.0ms (18.4%)

Accuracy

Total 1.3b remaining (18.1%)

Threshold costs 0b (0%)

Counts
85 → 5
Compiler

Compiled 12166 to 8294 computations (31.8% saved)

bsearch5.0ms (0.1%)

Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify34.0ms (0.6%)

Algorithm
egg-herbie
Rules
17×+-commutative_binary64
17×*-commutative_binary64
15×sub-neg_binary64
11×neg-sub0_binary64
11×neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
052487
172473
298473
3122473
4138473
5146473
6148473
Stop Event
saturated

end231.0ms (4.4%)

Compiler

Compiled 828 to 502 computations (39.4% saved)

Profiling

Loading profile data...