Details

Time bar (total: 13.9s)

analyze964.0ms (6.9%)

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
25%74.9%0.1%4
37.4%62.4%0.1%5
37.4%62.4%0.1%6
37.4%56.2%6.4%7
45.2%48.4%6.4%8
49.1%42.1%8.7%9
51.5%35.1%13.4%10
58.1%27.7%14.2%11
60.8%22.6%16.5%12
62.3%18.7%19%13
66.2%14.4%19.4%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample3.2s (22.6%)

Results
1.0s5500×body128valid
773.0ms1124×body2048valid
412.0ms699×body1024valid
332.0ms386×body4096valid
159.0ms384×body512valid
121.0ms669×body128invalid
46.0ms163×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify217.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

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
31.9b
Counts
3 → 1
Alt Table
StatusErrorProgram
31.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)
0.6b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series403.0ms (2.9%)

Counts
3 → 60
Calls

3 calls:

219.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
106.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
77.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

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

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

simplify406.0ms (2.9%)

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

prune209.0ms (1.5%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New15910169
Fresh000
Picked101
Done000
Total16010170
Error
3.6b
Counts
170 → 10
Alt Table
StatusErrorProgram
40.1b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
41.3b
(*.f64 -1/2 (/.f64 (+.f64 b b) a))
32.2b
(*.f64 -1/2 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (cbrt.f64 a))))
32.0b
(*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) 1) (/.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b 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))
49.7b
(*.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))
31.9b
(*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a)))
32.9b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
37.3b
(*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a))
48.7b
(*.f64 -1/2 (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 a))))
Compiler

Compiled 4798 to 2900 computations (39.6% saved)

localize22.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))
0.6b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series139.0ms (1%)

Counts
1 → 20
Calls

1 calls:

139.0ms
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))

rewrite23.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
16×add-sqr-sqrt_binary64
13×associate-*r*_binary64
12×*-un-lft-identity_binary64
11×times-frac_binary64
10×add-exp-log_binary64
Counts
1 → 43
Calls

1 calls:

14.0ms
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))

simplify130.0ms (0.9%)

Algorithm
egg-herbie
Rules
460×times-frac_binary64
408×associate-*l*_binary64
317×unswap-sqr_binary64
311×associate-/l*_binary64
305×fma-def_binary64
Counts
63 → 91
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01311718
13701571
211781497
344451497
452761497

prune301.0ms (2.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1821183
Fresh369
Picked011
Done000
Total1858193
Error
3.6b
Counts
193 → 8
Alt Table
StatusErrorProgram
40.1b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
41.3b
(*.f64 -1/2 (/.f64 (+.f64 b 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))
49.7b
(*.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.4b
(*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (*.f64 a (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 -4 a))) b)))))
31.9b
(*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a)))
32.9b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
37.3b
(*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a))
Compiler

Compiled 5212 to 3267 computations (37.3% saved)

localize22.0ms (0.2%)

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

series1.2s (8.3%)

Counts
4 → 42
Calls

4 calls:

663.0ms
(/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
283.0ms
(/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
174.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
32.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

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

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

simplify267.0ms (1.9%)

Algorithm
egg-herbie
Rules
502×associate-*l/_binary64
496×fma-def_binary64
478×fma-neg_binary64
422×associate-/r/_binary64
308×cancel-sign-sub-inv_binary64
Counts
206 → 291
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02616252
16445816
221635690
349385684
451875684

prune841.0ms (6%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New2883291
Fresh156
Picked011
Done011
Total28910299
Error
1.2b
Counts
299 → 10
Alt Table
StatusErrorProgram
49.4b
(*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (*.f64 a (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 -4 a))) b)))))
40.1b
(*.f64 -1/2 (/.f64 1 (*.f64 (/.f64 b (*.f64 -4 c)) -2)))
47.4b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))))))
37.3b
(*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a))
40.1b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
41.3b
(*.f64 -1/2 (/.f64 (+.f64 b 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))
57.3b
(*.f64 -1/2 (/.f64 1 (/.f64 a (fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) 4) (pow.f64 b 3)) (fma.f64 (/.f64 (pow.f64 (*.f64 -4 (*.f64 c a)) 3) (pow.f64 b 5)) -1/16 (/.f64 2 (/.f64 b (*.f64 c a))))))))
31.9b
(*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a)))
32.9b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
Compiler

Compiled 9104 to 6016 computations (33.9% saved)

localize33.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)
3.4b
(exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
9.7b
(sqrt.f64 (*.f64 a (*.f64 c -4)))
11.0b
(+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))

series869.0ms (6.2%)

Counts
3 → 42
Calls

3 calls:

425.0ms
(/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)
245.0ms
(+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
199.0ms
(exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))

rewrite15.0ms (0.1%)

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

3 calls:

6.0ms
(/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)
4.0ms
(+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
2.0ms
(exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))

simplify145.0ms (1%)

Algorithm
egg-herbie
Rules
837×times-frac_binary64
498×associate-/l*_binary64
439×associate-/r*_binary64
424×fma-def_binary64
352×fma-neg_binary64
Counts
111 → 173
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02093059
15212817
213932779
347542775
449852767
549582767

prune218.0ms (1.6%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1921193
Fresh077
Picked101
Done022
Total19310203
Error
1.2b
Counts
203 → 10
Alt Table
StatusErrorProgram
49.4b
(*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (*.f64 a (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 -4 a))) b)))))
40.1b
(*.f64 -1/2 (/.f64 1 (*.f64 (/.f64 b (*.f64 -4 c)) -2)))
38.3b
(*.f64 -1/2 (/.f64 (+.f64 b (pow.f64 (exp.f64 (*.f64 (cbrt.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (cbrt.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))) (cbrt.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))) a))
31.9b
(*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a)))
40.1b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
41.3b
(*.f64 -1/2 (/.f64 (+.f64 b 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))
57.3b
(*.f64 -1/2 (/.f64 1 (/.f64 a (fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) 4) (pow.f64 b 3)) (fma.f64 (/.f64 (pow.f64 (*.f64 -4 (*.f64 c a)) 3) (pow.f64 b 5)) -1/16 (/.f64 2 (/.f64 b (*.f64 c a))))))))
32.9b
(*.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 1 (/.f64 a (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4))))))))
Compiler

Compiled 5551 to 3663 computations (34% saved)

regimes3.9s (28.1%)

Accuracy

Total 6.9b remaining (73.1%)

Threshold costs 0b (0%)

Counts
203 → 3
Compiler

Compiled 18864 to 13326 computations (29.4% saved)

bsearch92.0ms (0.7%)

Steps
ItersRangePoint
4
4.199021549675812e+120
7.979983627339533e+128
2.4796580311829948e+128
10
-0.6073820109206627
-6.806189290200473e-18
-6.901485601872386e-18
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
/-rgt-identity_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02954
13754
23654

end321.0ms (2.3%)

Compiler

Compiled 318 to 222 computations (30.2% saved)

Profiling

Loading profile data...