Details

Time bar (total: 7.6s)

analyze779.0ms (10.3%)

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)

sample54.0ms (0.7%)

Algorithm
intervals
Results
14.0ms168×body128valid
13.0ms39×body2048valid
6.0ms22×body1024valid
5.0ms13×body4096valid
1.0msbody512valid
1.0ms19×body128nan
1.0ms15×body128invalid
1.0msbody256valid
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify156.0ms (2.1%)

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
34.9b
Counts
3 → 1
Alt Table
StatusErrorProgram
34.9b
(*.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 3 expressions with local error:

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

rewrite13.0ms (0.2%)

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:

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

series167.0ms (2.2%)

Counts
3 → 60
Calls

3 calls:

69.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
49.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
49.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

simplify486.0ms (6.4%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01883311
15103170
215343008
348403008
449543008

prune133.0ms (1.8%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22111232
Fresh000
Picked101
Done000
Total22211233
Error
5.8b
Counts
233 → 11
Alt Table
StatusErrorProgram
33.9b
(*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (cbrt.f64 a))))
48.6b
(*.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))
49.6b
(*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (*.f64 a (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
46.9b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a))
47.9b
(*.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)))))))))
33.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
43.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
33.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
40.3b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
43.2b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
56.6b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
Compiler

Compiled 4792 to 2881 computations (39.9% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

rewrite13.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
23×*-un-lft-identity_binary64
13×add-sqr-sqrt_binary64
13×add-cube-cbrt_binary64
12×times-frac_binary64
pow1_binary64
Counts
3 → 66
Calls

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

series333.0ms (4.4%)

Counts
3 → 28
Calls

3 calls:

185.0ms
(/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a)
129.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
18.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

simplify112.0ms (1.5%)

Algorithm
egg-herbie
Rules
722×associate-/l*_binary64
598×associate-/r*_binary64
368×associate-*l*_binary64
333×fma-def_binary64
192×associate-*l/_binary64
Counts
94 → 170
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01742413
14402262
212932199
349632199
449972199

prune128.0ms (1.7%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1673170
Fresh2810
Picked011
Done000
Total16912181
Error
2.9b
Counts
181 → 12
Alt Table
StatusErrorProgram
47.9b
(*.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)))))))))
49.6b
(*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (*.f64 a (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
33.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
43.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
33.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
40.3b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
43.2b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
48.6b
(*.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))
45.8b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))) a))
56.6b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
46.9b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a))
37.5b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 a (*.f64 c -4))) (sqrt.f64 (*.f64 a (*.f64 c -4)))) (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a))
Compiler

Compiled 4313 to 2745 computations (36.4% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite23.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:

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

series526.0ms (7%)

Counts
2 → 28
Calls

2 calls:

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

simplify134.0ms (1.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
02175467
15425019
217114960
350204960

prune252.0ms (3.3%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New3872389
Fresh4610
Picked011
Done011
Total39110401
Error
2.9b
Counts
401 → 10
Alt Table
StatusErrorProgram
43.2b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
45.4b
(*.f64 -1/2 (/.f64 1 (fma.f64 (/.f64 a b) -1/2 (*.f64 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 a c))) -2))))
46.9b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a))
33.5b
(*.f64 -1/2 (/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))))
33.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
43.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
33.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
40.3b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
45.8b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))) a))
37.5b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 a (*.f64 c -4))) (sqrt.f64 (*.f64 a (*.f64 c -4)))) (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a))
Compiler

Compiled 9116 to 5980 computations (34.4% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

rewrite23.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
46×add-exp-log_binary64
20×*-un-lft-identity_binary64
20×add-sqr-sqrt_binary64
18×associate-*r*_binary64
18×div-exp_binary64
Counts
2 → 85
Calls

2 calls:

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

series525.0ms (6.9%)

Counts
2 → 28
Calls

2 calls:

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

simplify113.0ms (1.5%)

Algorithm
egg-herbie
Rules
696×fma-neg_binary64
329×associate-*l/_binary64
305×fma-def_binary64
285×associate-*r/_binary64
227×sub-neg_binary64
Counts
113 → 211
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01993082
15222599
217822579
340022575
449492575

prune197.0ms (2.6%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New3701371
Fresh077
Picked011
Done022
Total37011381
Error
2.9b
Counts
381 → 11
Alt Table
StatusErrorProgram
43.0b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
45.9b
(*.f64 -1/2 (/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4)))))))))
43.2b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
45.4b
(*.f64 -1/2 (/.f64 1 (fma.f64 (/.f64 a b) -1/2 (*.f64 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 a c))) -2))))
46.9b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) a))
33.5b
(*.f64 -1/2 (/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))))
33.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
33.4b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))) a))
40.3b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
45.8b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))) a))
37.5b
(*.f64 -1/2 (/.f64 (+.f64 b (hypot.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 a (*.f64 c -4))) (sqrt.f64 (*.f64 a (*.f64 c -4)))) (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a))
Compiler

Compiled 6796 to 4637 computations (31.8% saved)

regimes1.5s (20.2%)

Accuracy

Total 7.9b remaining (72%)

Threshold costs 0b (0%)

Compiler

Compiled 11228 to 7750 computations (31% saved)

bsearch49.0ms (0.7%)

Steps
ItersRangePoint
6
3.586437907391441e+43
2.682647739852628e+44
2.642290894058981e+44
6
-6.61176354660062e-86
-4.133706132016644e-87
-5.819396861331114e-86
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0.1%)

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
03060
14160
24760
35160
45460
55560
65460

end1.0ms (0%)

Compiler

Compiled 44 to 29 computations (34.1% saved)

sample1.8s (23.3%)

Algorithm
intervals
Results
393.0ms1095×body2048valid
370.0ms5270×body128valid
192.0ms700×body1024valid
170.0ms420×body4096valid
72.0ms352×body512valid
44.0ms663×body128nan
28.0ms400×body128invalid
22.0ms163×body256valid
Compiler

Compiled 284 to 202 computations (28.9% saved)

Profiling

Loading profile data...