Details

Time bar (total: 9.3s)

analyze630.0ms (6.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.4s (25.6%)

Results
721.0ms5325×body128valid
616.0ms1153×body2048valid
313.0ms758×body1024valid
260.0ms403×body4096valid
140.0ms1110×body128invalid
127.0ms404×body512valid
47.0ms213×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify147.0ms (1.6%)

Algorithm
egg-herbie
Rules
2079×fma-neg_binary64
1006×fma-def_binary64
919×div-sub_binary64
626×distribute-rgt-in_binary64
435×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01526
13824
29524
322722
435722
561422
6110322
7137322
8163622
9233022
10318722
11288022
12282722
13289622
14292222
15379722
16482422
17524022

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
36.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
36.2b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
Compiler

Compiled 71 to 46 computations (35.2% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
0.7b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
24.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series165.0ms (1.8%)

Counts
3 → 60
Calls

3 calls:

73.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
51.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
41.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

rewrite12.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
24×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
14×add-cube-cbrt_binary64
12×times-frac_binary64
distribute-lft-out_binary64
Counts
3 → 67
Calls

3 calls:

4.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
3.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
1.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

simplify103.0ms (1.1%)

Algorithm
egg-herbie
Rules
820×times-frac_binary64
539×associate-/l*_binary64
458×fma-def_binary64
246×fma-neg_binary64
189×cancel-sign-sub-inv_binary64
Counts
127 → 169
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01883311
15103170
215343008
348403008
449543008

prune141.0ms (1.5%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New15811169
Fresh000
Picked101
Done000
Total15911170
Error
6.2b
Counts
170 → 11
Alt Table
StatusErrorProgram
38.2b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
36.6b
(*.f64 -1/2 (/.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (/.f64 a (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))))
36.5b
(*.f64 -1/2 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) (cbrt.f64 a))))
49.6b
(*.f64 -1/2 (cbrt.f64 (pow.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a) 3)))
56.0b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
36.1b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a)))
48.8b
(*.f64 -1/2 (exp.f64 (log.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))))
46.1b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
36.1b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
36.0b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
46.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
Compiler

Compiled 4780 to 2902 computations (39.3% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))
0.0b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
0.1b
(/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a)
14.6b
(sqrt.f64 (*.f64 a (*.f64 c -4)))

series453.0ms (4.8%)

Counts
4 → 42
Calls

4 calls:

196.0ms
(/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a)
131.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
108.0ms
(hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))
18.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
24×*-un-lft-identity_binary64
14×add-sqr-sqrt_binary64
14×add-cube-cbrt_binary64
12×times-frac_binary64
10×pow1_binary64
Counts
4 → 76
Calls

4 calls:

4.0ms
(/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a)
3.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))
2.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
0.0ms
(hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))

simplify97.0ms (1%)

Algorithm
egg-herbie
Rules
750×associate-/l*_binary64
718×fma-def_binary64
617×associate-/r*_binary64
201×cancel-sign-sub-inv_binary64
199×associate-*l/_binary64
Counts
118 → 185
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02012952
15132787
214722716
347422712
450262712

prune142.0ms (1.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1823185
Fresh2810
Picked011
Done000
Total18412196
Error
3.1b
Counts
196 → 12
Alt Table
StatusErrorProgram
38.2b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
36.6b
(*.f64 -1/2 (/.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (/.f64 a (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))))
36.5b
(*.f64 -1/2 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) (cbrt.f64 a))))
49.6b
(*.f64 -1/2 (cbrt.f64 (pow.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a) 3)))
36.1b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a)))
48.8b
(*.f64 -1/2 (exp.f64 (log.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))))
36.1b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
47.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))) a))
38.8b
(*.f64 -1/2 (/.f64 2 (/.f64 b (/.f64 c 1))))
46.1b
(*.f64 -1/2 (fma.f64 (/.f64 b a) 2 (/.f64 -2 (/.f64 b (/.f64 c 1)))))
36.0b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
46.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
Compiler

Compiled 5236 to 3363 computations (35.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
0.1b
(/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
0.1b
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
14.6b
(sqrt.f64 (*.f64 a (*.f64 c -4)))

series541.0ms (5.8%)

Counts
2 → 28
Calls

2 calls:

354.0ms
(/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
187.0ms
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))

rewrite25.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
114×times-frac_binary64
94×*-un-lft-identity_binary64
62×add-sqr-sqrt_binary64
62×add-cube-cbrt_binary64
22×associate-/r*_binary64
Counts
2 → 133
Calls

2 calls:

6.0ms
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
3.0ms
(/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))

simplify111.0ms (1.2%)

Algorithm
egg-herbie
Rules
704×associate-/l*_binary64
646×associate-/r*_binary64
360×fma-def_binary64
321×associate-/r/_binary64
167×cancel-sign-sub-inv_binary64
Counts
161 → 224
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02175545
15425019
217114960
350204960

prune238.0ms (2.5%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2903293
Fresh1910
Picked101
Done011
Total29213305
Error
3.1b
Counts
305 → 13
Alt Table
StatusErrorProgram
38.2b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
36.6b
(*.f64 -1/2 (/.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (/.f64 a (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))))
36.1b
(*.f64 -1/2 (/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))))
47.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))) a))
36.1b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a)))
48.8b
(*.f64 -1/2 (exp.f64 (log.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))))
46.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
47.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 -4 c))))))))
44.6b
(*.f64 -1/2 (/.f64 1 (fma.f64 -1/2 (/.f64 a b) (*.f64 (/.f64 (*.f64 b a) (*.f64 -4 (*.f64 a c))) -2))))
49.6b
(*.f64 -1/2 (cbrt.f64 (pow.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a) 3)))
38.8b
(*.f64 -1/2 (/.f64 2 (/.f64 b (/.f64 c 1))))
46.1b
(*.f64 -1/2 (fma.f64 (/.f64 b a) 2 (/.f64 -2 (/.f64 b (/.f64 c 1)))))
36.0b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
Compiler

Compiled 9275 to 6108 computations (34.1% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
0.1b
(/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
0.1b
(*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
14.6b
(sqrt.f64 (*.f64 a (*.f64 c -4)))

series858.0ms (9.2%)

Counts
3 → 42
Calls

3 calls:

348.0ms
(*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
315.0ms
(/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
194.0ms
(/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))

rewrite28.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
51×add-exp-log_binary64
38×*-un-lft-identity_binary64
30×add-sqr-sqrt_binary64
29×times-frac_binary64
23×add-cube-cbrt_binary64
Counts
3 → 124
Calls

3 calls:

7.0ms
(*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
6.0ms
(/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
4.0ms
(/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))

simplify127.0ms (1.4%)

Algorithm
egg-herbie
Rules
445×fma-neg_binary64
422×fma-def_binary64
396×associate-*l/_binary64
341×associate-*r/_binary64
234×cancel-sign-sub-inv_binary64
Counts
166 → 236
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02374541
16333918
221423888
346093882
449573882

prune205.0ms (2.2%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New2551256
Fresh11011
Picked011
Done011
Total25613269
Error
3.1b
Counts
269 → 13
Alt Table
StatusErrorProgram
38.2b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
36.6b
(*.f64 -1/2 (/.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (/.f64 a (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))))
36.1b
(*.f64 -1/2 (/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))))
47.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))) a))
43.3b
(*.f64 -1/2 (/.f64 1 (*.f64 a (fma.f64 -2 (/.f64 b (*.f64 -4 (*.f64 a c))) (/.f64 -1/2 b)))))
36.1b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a)))
48.8b
(*.f64 -1/2 (exp.f64 (log.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))))
46.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
47.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 -4 c))))))))
49.6b
(*.f64 -1/2 (cbrt.f64 (pow.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a) 3)))
38.8b
(*.f64 -1/2 (/.f64 2 (/.f64 b (/.f64 c 1))))
46.1b
(*.f64 -1/2 (fma.f64 (/.f64 b a) 2 (/.f64 -2 (/.f64 b (/.f64 c 1)))))
36.0b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
Compiler

Compiled 7638 to 5266 computations (31.1% saved)

regimes2.6s (27.8%)

Accuracy

Total 7.8b remaining (71.7%)

Threshold costs 0b (0%)

Counts
156 → 3
Compiler

Compiled 14984 to 10510 computations (29.9% saved)

bsearch80.0ms (0.9%)

Steps
ItersRangePoint
8
1.5379008350198317e+75
6.255524633154715e+77
5.864249003435115e+77
9
-4.6005944062657114e-126
-4.2261503208602204e-134
-4.5237376809518334e-126
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

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
02860
13760
24460
34860
45160
55260
65260

end184.0ms (2%)

Compiler

Compiled 336 to 238 computations (29.2% saved)

Profiling

Loading profile data...