Details

Time bar (total: 6.0s)

analyze643.0ms (10.7%)

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 (38.6%)

Results
701.0ms5273×body128valid
664.0ms1228×body2048valid
336.0ms761×body1024valid
265.0ms430×body4096valid
136.0ms1064×body128invalid
118.0ms363×body512valid
47.0ms201×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify38.0ms (0.6%)

Algorithm
egg-herbie
Rules
846×fma-def_binary64
544×div-sub_binary64
489×fma-neg_binary64
405×times-frac_binary64
262×associate-/l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01526
13824
210024
325922
446022
584022
6179022
7299922
8368222
9474222
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
34.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
34.9b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
34.8b
(/.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.1b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
0.3b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
1.2b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
23.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series130.0ms (2.2%)

Counts
4 → 96
Calls

4 calls:

51.0ms
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
41.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
28.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
9.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite46.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
169×add-sqr-sqrt_binary64
165×log1p-expm1-u_binary64
165×expm1-log1p-u_binary64
164×add-cbrt-cube_binary64
160×egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01574
134762
Stop Event
node limit
Counts
4 → 160
Calls

4 calls:

42.0ms
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
42.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
42.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
42.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

simplify64.0ms (1.1%)

Algorithm
egg-herbie
Rules
743×times-frac_binary64
469×associate-/l*_binary64
432×fma-def_binary64
425×associate-/r*_binary64
158×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01252060
14151984
214751904
Stop Event
node limit
Counts
256 → 236

prune175.0ms (2.9%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2306236
Fresh011
Picked011
Done000
Total2308238
Error
5.3b
Counts
238 → 8
Alt Table
StatusErrorProgram
34.8b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
48.7b
(/.f64 (neg.f64 b) a)
34.9b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
42.4b
(/.f64 (/.f64 (neg.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
36.9b
(/.f64 (neg.f64 c) b)
49.0b
(-.f64 (/.f64 c b) (/.f64 b a))
45.6b
(pow.f64 (cbrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 3)
35.0b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 4 (*.f64 a c)))) (pow.f64 (cbrt.f64 (*.f64 4 (*.f64 a c))) 2) (*.f64 4 (*.f64 a c)))))) (*.f64 2 a))
Compiler

Compiled 6243 to 3641 computations (41.7% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.2b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
0.3b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
23.7b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series121.0ms (2%)

Counts
4 → 96
Calls

4 calls:

51.0ms
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
32.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)))
11.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite68.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
954×prod-diff_binary64
137×add-sqr-sqrt_binary64
131×log1p-expm1-u_binary64
131×expm1-log1p-u_binary64
130×egg-rr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01362
127962
2361662
Stop Event
node limit
Counts
4 → 130
Calls

4 calls:

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

simplify46.0ms (0.8%)

Algorithm
egg-herbie
Rules
740×times-frac_binary64
465×associate-/l*_binary64
423×associate-/r*_binary64
372×fma-def_binary64
147×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01162045
13811971
213391891
Stop Event
node limit
Counts
226 → 204

prune137.0ms (2.3%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2013204
Fresh246
Picked011
Done101
Total2048212
Error
5.3b
Counts
212 → 8
Alt Table
StatusErrorProgram
34.9b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
40.9b
(*.f64 (*.f64 2 (*.f64 (/.f64 c b) a)) (/.f64 -1/2 a))
34.8b
(/.f64 1 (/.f64 a (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) -1/2)))
42.4b
(/.f64 (/.f64 (neg.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
36.9b
(/.f64 (neg.f64 c) b)
49.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.7b
(/.f64 (neg.f64 b) a)
42.4b
(/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (/.f64 -1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
Compiler

Compiled 5081 to 2961 computations (41.7% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 a (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) -1/2))
0.1b
(/.f64 1 (/.f64 a (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) -1/2)))
0.3b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
23.7b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series173.0ms (2.9%)

Counts
2 → 40
Calls

2 calls:

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

rewrite68.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
972×prod-diff_binary64
156×add-sqr-sqrt_binary64
148×add-cbrt-cube_binary64
148×log1p-expm1-u_binary64
148×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01547
132044
2421144
Stop Event
node limit
Counts
2 → 89
Calls

2 calls:

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

simplify32.0ms (0.5%)

Algorithm
egg-herbie
Rules
801×times-frac_binary64
498×associate-/l*_binary64
432×associate-/r*_binary64
306×fma-def_binary64
116×associate-/r/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01091185
13601168
212681105
Stop Event
node limit
Counts
129 → 135

prune161.0ms (2.7%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New2353238
Fresh156
Picked011
Done011
Total23610246
Error
5.2b
Counts
246 → 10
Alt Table
StatusErrorProgram
48.8b
(/.f64 1 (/.f64 (neg.f64 a) b))
34.8b
(/.f64 1 (/.f64 a (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) -1/2)))
34.9b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
37.3b
(/.f64 1 (/.f64 a (*.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) -1/2)))
40.9b
(*.f64 (*.f64 2 (*.f64 (/.f64 c b) a)) (/.f64 -1/2 a))
36.9b
(/.f64 1 (-.f64 (/.f64 a b) (/.f64 b c)))
42.4b
(/.f64 (/.f64 (neg.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
36.9b
(/.f64 (neg.f64 c) b)
49.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.7b
(/.f64 (neg.f64 b) a)
Compiler

Compiled 6138 to 3763 computations (38.7% saved)

localize3.0ms (0%)

prune6.0ms (0.1%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New000
Fresh077
Picked011
Done022
Total01010
Error
5.2b
Counts
10 → 10
Alt Table
StatusErrorProgram
48.8b
(/.f64 1 (/.f64 (neg.f64 a) b))
34.8b
(/.f64 1 (/.f64 a (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) -1/2)))
34.9b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 -1/2 a))
37.3b
(/.f64 1 (/.f64 a (*.f64 (+.f64 b (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2)) -1/2)))
40.9b
(*.f64 (*.f64 2 (*.f64 (/.f64 c b) a)) (/.f64 -1/2 a))
36.9b
(/.f64 1 (-.f64 (/.f64 a b) (/.f64 b c)))
42.4b
(/.f64 (/.f64 (neg.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
36.9b
(/.f64 (neg.f64 c) b)
49.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.7b
(/.f64 (neg.f64 b) a)
Compiler

Compiled 152 to 103 computations (32.2% saved)

regimes1.5s (25.7%)

Accuracy

Total 4.2b remaining (43.1%)

Threshold costs 0b (0%)

Counts
119 → 3
Compiler

Compiled 10336 to 6994 computations (32.3% saved)

bsearch67.0ms (1.1%)

Steps
ItersRangePoint
9
9.01997338348866e+138
6.498360735467026e+146
1.543614676518798e+140
6
-1.3789039591403066e-57
-2.5130832043425794e-58
-5.518100183308216e-58
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02750
13850
24750
35450
45850
55950
Stop Event
saturated

end133.0ms (2.2%)

Compiler

Compiled 226 to 149 computations (34.1% saved)

Profiling

Loading profile data...