Details

Time bar (total: 18.8s)

analyze664.0ms (3.5%)

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.3s (12.4%)

Results
727.0ms5429×body128valid
630.0ms1153×body2048valid
305.0ms715×body1024valid
253.0ms396×body4096valid
140.0ms1110×body128invalid
130.0ms371×body512valid
45.0ms192×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify381.0ms (2%)

Algorithm
egg-herbie
Rules
2009×fma-neg_binary64
1508×div-sub_binary64
1334×associate-/l*_binary64
1156×fma-def_binary64
685×associate-/l/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13422
26422
313222
419822
532522
655222
791822
8135222
9155422
10235922
11315822
12256522
13265322
14321922
15336122
16346122
17398522
18417122
19443922
20465922
21470122
22475722
23494122
24494122
25336522
26305922
27298322
28298522
29299722
30299722
31299722
32299722
33273622

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
33.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
33.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
33.1b
(/.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)

localize12.0ms (0.1%)

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.4b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
0.9b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
24.0b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series204.0ms (1.1%)

Counts
4 → 96
Calls

4 calls:

90.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
54.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
49.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
10.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite28.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
22×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
10×fma-def_binary64
10×add-cube-cbrt_binary64
10×add-log-exp_binary64
Counts
4 → 90
Calls

4 calls:

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

simplify122.0ms (0.7%)

Algorithm
egg-herbie
Rules
697×fma-neg_binary64
327×cancel-sign-sub-inv_binary64
226×distribute-rgt-neg-in_binary64
150×distribute-rgt-neg-out_binary64
146×associate-*r*_binary64
Counts
186 → 207
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02434202
16933825
224883724
346523704
449853704

prune388.0ms (2.1%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New19611207
Fresh011
Picked101
Done000
Total19712209
Error
6.1b
Counts
209 → 12
Alt Table
StatusErrorProgram
32.0b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 2) a)
42.5b
(neg.f64 (/.f64 c b))
37.8b
(/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
33.9b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))))) (*.f64 2 a))
45.4b
(-.f64 (/.f64 c b) (/.f64 b a))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
37.4b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.1b
(/.f64 (neg.f64 b) a)
33.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
45.0b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))))
47.3b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2)) 3))
37.0b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a))
Compiler

Compiled 5813 to 3258 computations (44% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

series406.0ms (2.2%)

Counts
3 → 24
Calls

3 calls:

239.0ms
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 2) a)
145.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)
21.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite27.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
117×times-frac_binary64
93×*-un-lft-identity_binary64
93×add-sqr-sqrt_binary64
67×add-cube-cbrt_binary64
19×associate-/l*_binary64
Counts
3 → 141
Calls

3 calls:

7.0ms
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 2) a)
3.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)
3.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

simplify151.0ms (0.8%)

Algorithm
egg-herbie
Rules
545×fma-def_binary64
329×cancel-sign-sub-inv_binary64
324×fma-neg_binary64
299×neg-mul-1_binary64
289×div-sub_binary64
Counts
165 → 263
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03435821
18115233
226505137
343385132
449895132

prune220.0ms (1.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2585263
Fresh5611
Picked101
Done000
Total26411275
Error
2.8b
Counts
275 → 11
Alt Table
StatusErrorProgram
42.5b
(neg.f64 (/.f64 c b))
58.8b
(log.f64 (exp.f64 (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 2) a)))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
32.8b
(/.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 a (/.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b)) (cbrt.f64 2))))
37.4b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.1b
(/.f64 (neg.f64 b) a)
33.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
33.9b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))))) (*.f64 2 a))
32.3b
(*.f64 (/.f64 1 (sqrt.f64 2)) (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b) (sqrt.f64 2)) a))
45.7b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b) b) 2) a)
32.1b
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
Compiler

Compiled 8218 to 5222 computations (36.5% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2))
0.2b
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
0.7b
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)
12.1b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series949.0ms (5.1%)

Counts
2 → 16
Calls

2 calls:

714.0ms
(/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2))
235.0ms
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))

rewrite1.4s (7.5%)

Algorithm
rewrite-expression-head
Rules
9356×times-frac_binary64
4673×*-un-lft-identity_binary64
4673×add-sqr-sqrt_binary64
3587×add-cube-cbrt_binary64
2715×sqrt-prod_binary64
Counts
2 → 2770
Calls

2 calls:

60.0ms
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
11.0ms
(/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2))

simplify4.7s (25%)

Algorithm
egg-herbie
Rules
1028×associate-/r/_binary64
825×*-commutative_binary64
811×times-frac_binary64
583×associate-/l/_binary64
405×associate-*r*_binary64
Counts
2786 → 2338
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01325230457
12842227328
24970227328
34945227328

prune3.9s (20.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New250402504
Fresh01010
Picked011
Done000
Total2504112515
Error
2.8b
Counts
2515 → 11
Alt Table
StatusErrorProgram
42.5b
(neg.f64 (/.f64 c b))
58.8b
(log.f64 (exp.f64 (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 2) a)))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
32.8b
(/.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 a (/.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b)) (cbrt.f64 2))))
37.4b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.1b
(/.f64 (neg.f64 b) a)
33.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
33.9b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))))) (*.f64 2 a))
32.3b
(*.f64 (/.f64 1 (sqrt.f64 2)) (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b) (sqrt.f64 2)) a))
45.7b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b) b) 2) a)
32.1b
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
Compiler

Compiled 154829 to 106509 computations (31.2% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b) (sqrt.f64 2))
0.7b
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b)
1.0b
(/.f64 1 (sqrt.f64 2))
12.1b
(sqrt.f64 (*.f64 -4 (*.f64 c a)))

series374.0ms (2%)

Counts
4 → 24
Calls

4 calls:

195.0ms
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b) (sqrt.f64 2))
160.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b)
19.0ms
(sqrt.f64 (*.f64 -4 (*.f64 c a)))
0.0ms
(/.f64 1 (sqrt.f64 2))

rewrite22.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
62×*-un-lft-identity_binary64
62×add-sqr-sqrt_binary64
48×times-frac_binary64
46×add-cube-cbrt_binary64
31×sqrt-prod_binary64
Counts
4 → 149
Calls

4 calls:

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

simplify137.0ms (0.7%)

Algorithm
egg-herbie
Rules
531×fma-def_binary64
427×fma-neg_binary64
365×associate-*l/_binary64
287×associate-/r/_binary64
274×cancel-sign-sub-inv_binary64
Counts
173 → 200
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02564592
15743985
218963899
346953895
448823895

prune167.0ms (0.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2000200
Fresh099
Picked011
Done011
Total20011211
Error
2.8b
Counts
211 → 11
Alt Table
StatusErrorProgram
42.5b
(neg.f64 (/.f64 c b))
58.8b
(log.f64 (exp.f64 (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 2) a)))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
32.8b
(/.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (/.f64 a (/.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b)) (cbrt.f64 2))))
37.4b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.1b
(/.f64 (neg.f64 b) a)
33.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
33.9b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -4 (*.f64 b b)))))) (*.f64 2 a))
32.3b
(*.f64 (/.f64 1 (sqrt.f64 2)) (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b) b) (sqrt.f64 2)) a))
45.7b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b) b) 2) a)
32.1b
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
Compiler

Compiled 6764 to 4760 computations (29.6% saved)

regimes1.9s (10.1%)

Accuracy

Total 7.4b remaining (72.5%)

Threshold costs 0b (0%)

Counts
162 → 3
Compiler

Compiled 16125 to 11398 computations (29.3% saved)

bsearch86.0ms (0.5%)

Steps
ItersRangePoint
9
3.2067924523174545e-41
2.4190282902010186e-35
9.407427085893267e-41
8
-3.0054071990655414e+53
-7.973999190487984e+48
-2.9485189597382724e+53
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
02654
14552
26252
37752
48452
58752
68852
78752

end164.0ms (0.9%)

Compiler

Compiled 315 to 216 computations (31.4% saved)

Profiling

Loading profile data...