Details

Time bar (total: 10.5s)

analyze1.6s (15%)

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
0%99.9%0.1%6
0%93.6%6.4%7
0%93.6%6.4%8
0%91.3%8.7%9
0%86.6%13.4%10
0%85%15%11
0%82.3%17.7%12
0%79.9%20.1%13
0%78.8%21.2%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample3.1s (29.9%)

Results
1.0s1205×body2048valid
739.0ms5289×body128valid
354.0ms773×body1024valid
306.0ms372×body8192exit
274.0ms421×body4096valid
124.0ms891×body128invalid
122.0ms356×body512valid
49.0ms212×body256valid
Compiler

Compiled 41 to 29 computations (29.3% saved)

simplify143.0ms (1.4%)

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
30.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
30.4b
(*.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)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series198.0ms (1.9%)

Counts
4 → 96
Calls

4 calls:

78.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
55.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
54.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
11.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite15.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
25×*-un-lft-identity_binary64
16×add-sqr-sqrt_binary64
15×add-cube-cbrt_binary64
12×times-frac_binary64
add-cbrt-cube_binary64
Counts
4 → 77
Calls

4 calls:

5.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)))
0.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

simplify85.0ms (0.8%)

Algorithm
egg-herbie
Rules
834×times-frac_binary64
539×associate-/l*_binary64
468×fma-def_binary64
198×cancel-sign-sub-inv_binary64
125×associate-/r/_binary64
Counts
173 → 193
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01973876
15213658
215783494
350113494

prune171.0ms (1.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New18112193
Fresh000
Picked101
Done000
Total18212194
Error
6.0b
Counts
194 → 12
Alt Table
StatusErrorProgram
30.5b
(*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a)))
41.6b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
29.8b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
47.5b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
29.9b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)))
50.4b
(*.f64 -1/2 (/.f64 (*.f64 2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) a))
47.3b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
30.3b
(*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a)) (cbrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a))) (cbrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a))))
41.3b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
57.1b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
31.8b
(*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
35.5b
(*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
Compiler

Compiled 5319 to 3231 computations (39.3% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series779.0ms (7.4%)

Counts
4 → 42
Calls

4 calls:

396.0ms
(/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))
214.0ms
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))
147.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))
22.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite33.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
114×times-frac_binary64
99×*-un-lft-identity_binary64
65×add-sqr-sqrt_binary64
65×add-cube-cbrt_binary64
22×associate-/r*_binary64
Counts
4 → 164
Calls

4 calls:

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

simplify164.0ms (1.6%)

Algorithm
egg-herbie
Rules
504×fma-neg_binary64
501×fma-def_binary64
444×associate-/r/_binary64
326×cancel-sign-sub-inv_binary64
212×associate-/l/_binary64
Counts
206 → 293
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02626252
16475816
222205699
345415689
449335689

prune261.0ms (2.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2885293
Fresh5611
Picked011
Done000
Total29312305
Error
2.0b
Counts
305 → 12
Alt Table
StatusErrorProgram
29.8b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
47.5b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
29.9b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)))
46.7b
(*.f64 -1/2 (exp.f64 (neg.f64 (-.f64 (log.f64 a) (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))))
30.1b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 c (*.f64 a -4)))) (cbrt.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))))) (cbrt.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))))))))))
47.3b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
41.6b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
29.8b
(*.f64 -1/2 (*.f64 (/.f64 1 a) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 a c)))))))
41.7b
(*.f64 -1/2 (/.f64 1 (fma.f64 (/.f64 a b) -1/2 (/.f64 -2 (/.f64 (*.f64 -4 c) b)))))
41.3b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
31.8b
(*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
44.9b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))))))))
Compiler

Compiled 9209 to 6109 computations (33.7% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series404.0ms (3.8%)

Counts
4 → 52
Calls

4 calls:

221.0ms
(*.f64 (/.f64 1 a) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 a c))))))
155.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 a c)))))
22.0ms
(sqrt.f64 (*.f64 -4 (*.f64 a c)))
5.0ms
(*.f64 -4 (*.f64 a c))

rewrite24.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary64
19×*-un-lft-identity_binary64
18×add-exp-log_binary64
17×pow1_binary64
16×associate-*l*_binary64
Counts
4 → 95
Calls

4 calls:

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

simplify78.0ms (0.7%)

Algorithm
egg-herbie
Rules
801×associate-/r*_binary64
447×fma-def_binary64
246×distribute-rgt-in_binary64
234×distribute-lft-in_binary64
163×associate-*r*_binary64
Counts
147 → 170
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02162933
15892656
218982615
350202615

prune147.0ms (1.4%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New1691170
Fresh2810
Picked011
Done011
Total17111182
Error
2.0b
Counts
182 → 11
Alt Table
StatusErrorProgram
29.8b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
47.5b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
29.9b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)))
46.7b
(*.f64 -1/2 (exp.f64 (neg.f64 (-.f64 (log.f64 a) (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))))
29.9b
(*.f64 -1/2 (*.f64 (/.f64 1 a) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 -4) (cbrt.f64 -4)) (*.f64 (cbrt.f64 -4) (*.f64 a c))))))))
47.3b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
41.6b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
29.8b
(*.f64 -1/2 (*.f64 (/.f64 1 a) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 a c)))))))
41.7b
(*.f64 -1/2 (/.f64 1 (fma.f64 (/.f64 a b) -1/2 (/.f64 -2 (/.f64 (*.f64 -4 c) b)))))
31.8b
(*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
44.9b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))))))))
Compiler

Compiled 4840 to 3111 computations (35.7% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series712.0ms (6.8%)

Counts
2 → 20
Calls

2 calls:

495.0ms
(/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)
217.0ms
(*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))

rewrite32.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
50×*-un-lft-identity_binary64
50×add-sqr-sqrt_binary64
46×times-frac_binary64
37×sqrt-prod_binary64
34×add-cube-cbrt_binary64
Counts
2 → 105
Calls

2 calls:

13.0ms
(*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
5.0ms
(/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)

simplify128.0ms (1.2%)

Algorithm
egg-herbie
Rules
743×times-frac_binary64
668×fma-def_binary64
642×associate-/l*_binary64
352×associate-/r*_binary64
214×associate-/l/_binary64
Counts
125 → 178
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02114809
15074260
214884114
346984114
452204114

prune296.0ms (2.8%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New3151316
Fresh178
Picked011
Done022
Total31611327
Error
2.0b
Counts
327 → 11
Alt Table
StatusErrorProgram
29.9b
(*.f64 -1/2 (*.f64 (/.f64 1 a) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 -4) (cbrt.f64 -4)) (*.f64 (cbrt.f64 -4) (*.f64 a c))))))))
46.7b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (exp.f64 (-.f64 (log.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (log.f64 a)))))
29.8b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
47.5b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
29.9b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)))
47.3b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
41.6b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
29.8b
(*.f64 -1/2 (*.f64 (/.f64 1 a) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 a c)))))))
41.7b
(*.f64 -1/2 (/.f64 1 (fma.f64 (/.f64 a b) -1/2 (/.f64 -2 (/.f64 (*.f64 -4 c) b)))))
31.8b
(*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
44.9b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))))))))
Compiler

Compiled 12509 to 8181 computations (34.6% saved)

regimes1.8s (17.4%)

Accuracy

Total 7.3b remaining (73.4%)

Threshold costs 0b (0%)

Counts
186 → 3
Compiler

Compiled 17516 to 12402 computations (29.2% saved)

bsearch87.0ms (0.8%)

Steps
ItersRangePoint
8
1.1175826801876352e+133
6.22727689815901e+136
2.786958316994699e+135
7
-1.4779045654404764e-24
-1.2649878224898108e-26
-1.2822271548888731e-26
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02958
14758
26058
37958
49158
59958
610258
710158

end167.0ms (1.6%)

Compiler

Compiled 303 to 221 computations (27.1% saved)

Profiling

Loading profile data...