Details

Time bar (total: 7.7s)

analyze645.0ms (8.4%)

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
25%74.9%0.1%5
25%74.9%0.1%6
25%68.6%6.4%7
31.2%62.4%6.4%8
36.7%54.6%8.7%9
38.2%48.4%13.4%10
42.7%42.3%15%11
47.8%34.1%18.1%12
49.1%30.3%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.3s (30.4%)

Results
724.0ms5353×body128valid
612.0ms1147×body2048valid
332.0ms775×body1024valid
264.0ms414×body4096valid
139.0ms1057×body128invalid
139.0ms389×body512valid
43.0ms178×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify316.0ms (4.1%)

Algorithm
egg-herbie
Rules
1968×fma-neg_binary64
1363×fma-def_binary64
898×div-sub_binary64
743×associate-/l*_binary64
567×times-frac_binary64
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
Stop Event
saturated
Counts
1 → 2

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 74 computations (33.3% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
0.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
2.2b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
19.9b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series127.0ms (1.7%)

Counts
4 → 96
Calls

4 calls:

54.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
36.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
28.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

rewrite100.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
725×fma-def_binary64
366×fma-neg_binary64
297×egg-rr
248×expm1-udef_binary64
248×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01374
129762
2376962
3548062
Stop Event
node limit
Counts
4 → 297
Calls

4 calls:

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

simplify65.0ms (0.8%)

Algorithm
egg-herbie
Rules
780×times-frac_binary64
487×associate-/l*_binary64
417×associate-/r*_binary64
406×fma-def_binary64
142×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01372325
14252249
213822208
349792208
Stop Event
node limit
Counts
393 → 370

prune296.0ms (3.8%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New36010370
Fresh011
Picked101
Done000
Total36111372
Error
7.2b
Counts
372 → 11
Alt Table
StatusErrorProgram
32.6b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
46.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
44.7b
(*.f64 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) 1/3) (/.f64 1 a))
45.7b
(/.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (*.f64 3 a))
46.7b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
43.1b
(/.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))
41.4b
(*.f64 -1/2 (/.f64 c b))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
34.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) 3)) (*.f64 3 a))
32.7b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (/.f64 1 (*.f64 a -3)))
Compiler

Compiled 11056 to 6057 computations (45.2% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 c (*.f64 a -3) (*.f64 b b))
0.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
2.2b
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b))))
19.9b
(sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))

series122.0ms (1.6%)

Counts
4 → 96
Calls

4 calls:

52.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
33.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b))))
24.0ms
(sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))
12.0ms
(fma.f64 c (*.f64 a -3) (*.f64 b b))

rewrite71.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
354×fma-def_binary64
224×expm1-udef_binary64
224×log1p-udef_binary64
205×fma-neg_binary64
197×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01466
129962
2324859
3491859
Stop Event
node limit
Counts
4 → 167
Calls

4 calls:

68.0ms
(fma.f64 c (*.f64 a -3) (*.f64 b b))
68.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
68.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b))))
68.0ms
(sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))

simplify62.0ms (0.8%)

Algorithm
egg-herbie
Rules
780×times-frac_binary64
487×associate-/l*_binary64
417×associate-/r*_binary64
406×fma-def_binary64
142×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01372325
14252249
213822208
349792208
Stop Event
node limit
Counts
263 → 240

prune160.0ms (2.1%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2355240
Fresh3710
Picked011
Done000
Total23813251
Error
3.0b
Counts
251 → 13
Alt Table
StatusErrorProgram
46.4b
(*.f64 (/.f64 b a) -2/3)
41.4b
(*.f64 -1/2 (/.f64 c b))
45.2b
(/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 c (*.f64 a -3) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))))) (*.f64 3 a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
32.6b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
46.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
44.8b
(*.f64 (*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3))))) 1/3) (/.f64 1 a))
38.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3))))))) (*.f64 3 a))
45.7b
(/.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (*.f64 3 a))
32.7b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (/.f64 1 (*.f64 a -3)))
46.6b
(/.f64 (+.f64 (neg.f64 b) (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3))))) (*.f64 3 a))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
34.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) 3)) (*.f64 3 a))
Compiler

Compiled 5890 to 3725 computations (36.8% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
0.3b
(/.f64 1/3 a)
2.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
19.9b
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))

series112.0ms (1.4%)

Counts
4 → 60
Calls

4 calls:

52.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
34.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
24.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))
1.0ms
(/.f64 1/3 a)

rewrite70.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
781×prod-diff_binary64
245×log1p-udef_binary64
159×egg-rr
139×add-sqr-sqrt_binary64
133×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01355
128055
2340655
3511855
Stop Event
node limit
Counts
4 → 159
Calls

4 calls:

66.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
66.0ms
(/.f64 1/3 a)
66.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
66.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))

simplify71.0ms (0.9%)

Algorithm
egg-herbie
Rules
766×times-frac_binary64
487×associate-/l*_binary64
405×associate-/r*_binary64
391×fma-def_binary64
368×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01341923
14201901
213721860
349651854
451721854
Stop Event
node limit
Counts
219 → 226

prune174.0ms (2.3%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New2215226
Fresh5611
Picked011
Done011
Total22613239
Error
3.0b
Counts
239 → 13
Alt Table
StatusErrorProgram
46.4b
(*.f64 (/.f64 b a) -2/3)
41.4b
(*.f64 -1/2 (/.f64 c b))
45.2b
(/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 c (*.f64 a -3) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))))) (*.f64 3 a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
35.8b
(*.f64 (-.f64 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) b) (/.f64 1/3 a))
32.6b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
46.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
46.4b
(*.f64 (*.f64 -2 b) (/.f64 1/3 a))
32.6b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
57.0b
(*.f64 (-.f64 b b) (/.f64 1/3 a))
32.8b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) 2) (/.f64 1/3 a))
45.7b
(/.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (*.f64 3 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3))))) (*.f64 3 a))
Compiler

Compiled 6253 to 3682 computations (41.1% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3)
2.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
19.9b
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))

series96.0ms (1.2%)

Counts
2 → 40
Calls

2 calls:

55.0ms
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
41.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3)

rewrite56.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
790×prod-diff_binary64
246×log1p-udef_binary64
139×add-sqr-sqrt_binary64
133×log1p-expm1-u_binary64
133×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
127941
2347541
3523141
Stop Event
node limit
Counts
2 → 63
Calls

2 calls:

52.0ms
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
52.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3)

simplify61.0ms (0.8%)

Algorithm
egg-herbie
Rules
731×times-frac_binary64
467×associate-/l*_binary64
371×associate-/r*_binary64
336×fma-def_binary64
310×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01111382
13621368
212001336
349251330
450841330
Stop Event
node limit
Counts
103 → 108

prune177.0ms (2.3%)

Pruning

14 alts after pruning (11 fresh and 3 done)

PrunedKeptTotal
New2452247
Fresh1910
Picked011
Done022
Total24614260
Error
3.0b
Counts
260 → 14
Alt Table
StatusErrorProgram
46.4b
(*.f64 (*.f64 -2 b) (/.f64 1/3 a))
46.4b
(/.f64 (*.f64 -2/3 b) a)
46.4b
(*.f64 (/.f64 b a) -2/3)
41.4b
(*.f64 -1/2 (/.f64 c b))
57.0b
(*.f64 (-.f64 b b) (/.f64 1/3 a))
45.6b
(/.f64 (*.f64 -1/2 (/.f64 (*.f64 c a) b)) a)
45.2b
(/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 c (*.f64 a -3) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))))) (*.f64 3 a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
35.8b
(*.f64 (-.f64 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) b) (/.f64 1/3 a))
32.6b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) (*.f64 3 a))
46.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
32.6b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
32.8b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) 2) (/.f64 1/3 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3))))) (*.f64 3 a))
Compiler

Compiled 6609 to 3919 computations (40.7% saved)

regimes2.3s (29.6%)

Accuracy

Total 7.2b remaining (70.2%)

Threshold costs 0b (0%)

Counts
173 → 3
Compiler

Compiled 17642 to 12194 computations (30.9% saved)

bsearch94.0ms (1.2%)

Steps
ItersRangePoint
10
3.73241376909039e-65
6.985216029906585e-55
1.2e-60
9
-1.1839448174746177e+114
-1.8526072091911443e+105
-8e+113
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
unsub-neg_binary64
neg-sub0_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02750
13648
23948
34048
44048
Stop Event
saturated

end168.0ms (2.2%)

Compiler

Compiled 283 to 195 computations (31.1% saved)

Profiling

Loading profile data...