Details

Time bar (total: 5.9s)

analyze603.0ms (10.2%)

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.2s (37.4%)

Results
687.0ms5306×body128valid
583.0ms1187×body2048valid
289.0ms731×body1024valid
266.0ms446×body4096valid
150.0ms388×body512valid
133.0ms1076×body128invalid
48.0ms198×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

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
34.9b
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.9b
(/.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)

localize10.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.8b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
1.2b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
21.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series122.0ms (2.1%)

Counts
4 → 96
Calls

4 calls:

48.0ms
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
37.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)))

rewrite48.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:

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

simplify44.0ms (0.7%)

Algorithm
egg-herbie
Rules
743×times-frac_binary64
469×associate-/l*_binary64
434×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

prune170.0ms (2.9%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2279236
Fresh101
Picked101
Done000
Total2299238
Error
5.0b
Counts
238 → 9
Alt Table
StatusErrorProgram
38.9b
(/.f64 (neg.f64 c) b)
56.3b
(/.f64 (-.f64 (neg.f64 b) (neg.f64 b)) (*.f64 2 a))
35.8b
(/.f64 (-.f64 (neg.f64 b) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))))) (*.f64 2 a))
43.5b
(-.f64 (/.f64 c b) (/.f64 b a))
43.2b
(neg.f64 (/.f64 b a))
57.5b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a)) 3))
48.3b
(pow.f64 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) 1/2)) -1)
55.5b
(pow.f64 (sqrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 2)
35.5b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
Compiler

Compiled 6257 to 3647 computations (41.7% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)
1.0b
(fma.f64 b b (*.f64 (*.f64 a c) -4))
13.8b
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2))
22.2b
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4)

series145.0ms (2.4%)

Counts
4 → 128
Calls

4 calls:

55.0ms
(pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)
42.0ms
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4)
37.0ms
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2))
9.0ms
(fma.f64 b b (*.f64 (*.f64 a c) -4))

rewrite108.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
812×prod-diff_binary64
249×egg-rr
143×add-sqr-sqrt_binary64
143×log1p-expm1-u_binary64
143×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01458
130752
2372952
Stop Event
node limit
Counts
4 → 249
Calls

4 calls:

98.0ms
(pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)
98.0ms
(fma.f64 b b (*.f64 (*.f64 a c) -4))
98.0ms
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2))
98.0ms
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4)

simplify93.0ms (1.6%)

Algorithm
egg-herbie
Rules
301×times-frac_binary64
272×associate-/r*_binary64
238×fma-neg_binary64
233×associate-/l*_binary64
231×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03204810
111154654
245784654
Stop Event
node limit
Counts
377 → 389

prune418.0ms (7.1%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New3863389
Fresh358
Picked011
Done000
Total3899398
Error
0.6b
Counts
398 → 9
Alt Table
StatusErrorProgram
54.2b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2)) (*.f64 2 a))
35.5b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
53.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 2 a))
38.9b
(/.f64 (neg.f64 c) b)
43.5b
(-.f64 (/.f64 c b) (/.f64 b a))
57.5b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a)) 3))
32.9b
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 2 a))
48.3b
(pow.f64 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) 1/2)) -1)
55.5b
(pow.f64 (sqrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 2)
Compiler

Compiled 19678 to 13028 computations (33.8% saved)

localize10.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 2 a))
0.7b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
12.6b
(sqrt.f64 (*.f64 a (*.f64 c -4)))

series215.0ms (3.6%)

Counts
3 → 28
Calls

3 calls:

128.0ms
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 2 a))
75.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
12.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

rewrite67.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
826×prod-diff_binary64
155×add-sqr-sqrt_binary64
147×log1p-expm1-u_binary64
147×expm1-log1p-u_binary64
146×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01447
131145
2430445
Stop Event
node limit
Counts
3 → 129
Calls

3 calls:

64.0ms
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 2 a))
64.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
64.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

simplify30.0ms (0.5%)

Algorithm
egg-herbie
Rules
734×times-frac_binary64
388×associate-/l*_binary64
364×associate-/r*_binary64
282×associate-*r*_binary64
259×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01011010
1323930
21061870
Stop Event
node limit
Counts
157 → 176

prune123.0ms (2.1%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1742176
Fresh257
Picked011
Done011
Total1769185
Error
0.3b
Counts
185 → 9
Alt Table
StatusErrorProgram
53.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 2 a))
38.9b
(/.f64 (neg.f64 c) b)
47.9b
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -4)) (sqrt.f64 a))))) (*.f64 2 a))
43.2b
(/.f64 (neg.f64 b) a)
57.5b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a)) 3))
32.9b
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 2 a))
48.3b
(pow.f64 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) 1/2)) -1)
55.5b
(pow.f64 (sqrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 2)
35.5b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
Compiler

Compiled 4631 to 3105 computations (33% saved)

localize3.0ms (0%)

prune6.0ms (0.1%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New000
Fresh066
Picked011
Done022
Total099
Error
0.3b
Counts
9 → 9
Alt Table
StatusErrorProgram
53.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 2 a))
38.9b
(/.f64 (neg.f64 c) b)
47.9b
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -4)) (sqrt.f64 a))))) (*.f64 2 a))
43.2b
(/.f64 (neg.f64 b) a)
57.5b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a)) 3))
32.9b
(/.f64 (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 2 a))
48.3b
(pow.f64 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) 1/2)) -1)
55.5b
(pow.f64 (sqrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 2)
35.5b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
Compiler

Compiled 159 to 117 computations (26.4% saved)

regimes1.2s (21%)

Accuracy

Total 9.4b remaining (94.8%)

Threshold costs 0b (0%)

Counts
97 → 3
Compiler

Compiled 7696 to 5522 computations (28.2% saved)

bsearch64.0ms (1.1%)

Steps
ItersRangePoint
9
1.085993431515551e+74
1.2980207237616743e+79
7.07453807142745e+77
6
-6.839379831418975e-60
-7.250081439596686e-61
-1.0838115433463801e-60
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02550
14650
26750
39150
410350
510950
611150
Stop Event
saturated

end132.0ms (2.2%)

Compiler

Compiled 231 to 165 computations (28.6% saved)

Profiling

Loading profile data...