Details

Time bar (total: 8.7s)

analyze758.0ms (8.8%)

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.6s (29.6%)

Results
788.0ms5384×body128valid
643.0ms1152×body2048valid
341.0ms731×body1024valid
281.0ms404×body4096valid
151.0ms1112×body128invalid
133.0ms390×body512valid
54.0ms195×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify144.0ms (1.7%)

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

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
31.6b
Counts
3 → 1
Alt Table
StatusErrorProgram
31.6b
(*.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)

localize11.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 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
0.6b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
22.4b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series183.0ms (2.1%)

Counts
4 → 96
Calls

4 calls:

77.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))))
44.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
11.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite13.0ms (0.2%)

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))

simplify88.0ms (1%)

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

prune157.0ms (1.8%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New18211193
Fresh000
Picked011
Done000
Total18212194
Error
4.7b
Counts
194 → 12
Alt Table
StatusErrorProgram
47.1b
(*.f64 -1/2 (/.f64 (+.f64 (pow.f64 b 3) (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3)) (*.f64 a (+.f64 (*.f64 b b) (-.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (*.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))))))
41.0b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
43.1b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
31.0b
(*.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))))
55.2b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
44.0b
(*.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))
46.2b
(*.f64 -1/2 (*.f64 2 (fma.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) a (/.f64 c b))))
46.5b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (fma.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) a (/.f64 c b)))))
30.6b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
33.0b
(*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) a))
31.6b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
37.8b
(*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
Compiler

Compiled 5381 to 3257 computations (39.5% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 a (+.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 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))
13.2b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series737.0ms (8.5%)

Counts
4 → 42
Calls

4 calls:

378.0ms
(/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))
202.0ms
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))
137.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))
20.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite32.0ms (0.4%)

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:

9.0ms
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))
3.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)))))

simplify179.0ms (2.1%)

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 → 291
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02626330
16475816
222205699
345415689
449335689

prune232.0ms (2.7%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2883291
Fresh6410
Picked011
Done011
Total2949303
Error
2.2b
Counts
303 → 9
Alt Table
StatusErrorProgram
41.0b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
43.1b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
30.6b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
41.0b
(*.f64 -1/2 (/.f64 1 (fma.f64 -1/2 (/.f64 a b) (/.f64 -2 (/.f64 (*.f64 -4 c) b)))))
33.0b
(*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) a))
51.8b
(*.f64 -1/2 (/.f64 1 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 a b) (pow.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) 2))) (*.f64 1/2 (/.f64 a b))))))
44.0b
(*.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))
43.5b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))))))))
31.6b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
Compiler

Compiled 9048 to 5992 computations (33.8% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))
0.7b
(fma.f64 b b (*.f64 c (*.f64 a -4)))
7.7b
(+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
23.1b
(cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))

series237.0ms (2.7%)

Counts
4 → 144
Calls

4 calls:

89.0ms
(*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))
82.0ms
(+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
56.0ms
(cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))
10.0ms
(fma.f64 b b (*.f64 c (*.f64 a -4)))

rewrite25.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
47×add-sqr-sqrt_binary64
22×cbrt-prod_binary64
16×sqrt-prod_binary64
15×unswap-sqr_binary64
12×fabs-mul_binary64
Counts
4 → 90
Calls

4 calls:

7.0ms
(*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))
2.0ms
(+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
1.0ms
(cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))
0.0ms
(fma.f64 b b (*.f64 c (*.f64 a -4)))

simplify232.0ms (2.7%)

Algorithm
egg-herbie
Rules
770×fma-def_binary64
405×associate-*l*_binary64
382×times-frac_binary64
277×associate-/l*_binary64
271×associate-/r*_binary64
Counts
234 → 303
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048012206
1149011074
2479711074
3537811074

prune444.0ms (5.1%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New3951396
Fresh066
Picked101
Done022
Total3969405
Error
2.2b
Counts
405 → 9
Alt Table
StatusErrorProgram
41.0b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
43.1b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
30.6b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
41.0b
(*.f64 -1/2 (/.f64 1 (fma.f64 -1/2 (/.f64 a b) (/.f64 -2 (/.f64 (*.f64 -4 c) b)))))
33.0b
(*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) a))
51.8b
(*.f64 -1/2 (/.f64 1 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 a b) (pow.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) 2))) (*.f64 1/2 (/.f64 a b))))))
44.0b
(*.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))
43.5b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))))))))
31.6b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
Compiler

Compiled 20838 to 13814 computations (33.7% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
7.7b
(+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
22.4b
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))
23.1b
(cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))
23.1b
(cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))

series188.0ms (2.2%)

Counts
3 → 92
Calls

3 calls:

85.0ms
(+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
57.0ms
(cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))
45.0ms
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-log-exp_binary64
pow1_binary64
Counts
3 → 42
Calls

3 calls:

3.0ms
(cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))
2.0ms
(+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
1.0ms
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))

simplify104.0ms (1.2%)

Algorithm
egg-herbie
Rules
409×associate-*r*_binary64
400×times-frac_binary64
286×associate-/r*_binary64
281×associate-*l*_binary64
270×associate-/l*_binary64
Counts
134 → 190
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04306836
113916203
250896203

prune346.0ms (4%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New3050305
Fresh066
Picked011
Done022
Total3059314
Error
2.2b
Counts
314 → 9
Alt Table
StatusErrorProgram
41.0b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
43.1b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
30.6b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))))
41.0b
(*.f64 -1/2 (/.f64 1 (fma.f64 -1/2 (/.f64 a b) (/.f64 -2 (/.f64 (*.f64 -4 c) b)))))
33.0b
(*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) a))
51.8b
(*.f64 -1/2 (/.f64 1 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 a b) (pow.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) 2))) (*.f64 1/2 (/.f64 a b))))))
44.0b
(*.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))
43.5b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))))))))
31.6b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
Compiler

Compiled 17580 to 11628 computations (33.9% saved)

regimes1.7s (19.8%)

Accuracy

Total 7.3b remaining (72.7%)

Threshold costs 0b (0%)

Counts
127 → 3
Compiler

Compiled 13072 to 9054 computations (30.7% saved)

bsearch59.0ms (0.7%)

Steps
ItersRangePoint
6
1.1369436937893642e+110
8.88426681540516e+110
5.986017873353636e+110
7
-4.6279246156557693e-82
-2.1562342863116115e-83
-9.982919774802431e-83
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

end154.0ms (1.8%)

Compiler

Compiled 283 to 197 computations (30.4% saved)

Profiling

Loading profile data...