Details

Time bar (total: 2.5min)

analyze1.7s (1.1%)

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.8%14.2%11
0%83.1%16.9%12
0%80.6%19.4%13
0%79.4%20.6%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.9s (1.9%)

Results
806.0ms5363×body128valid
674.0ms1144×body2048valid
341.0ms409×body8192exit
332.0ms713×body1024valid
308.0ms418×body4096valid
155.0ms422×body512valid
137.0ms925×body128invalid
49.0ms196×body256valid
Compiler

Compiled 41 to 29 computations (29.3% saved)

simplify382.0ms (0.3%)

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
34.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
34.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
34.8b
(/.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)

localize11.0ms (0%)

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

series207.0ms (0.1%)

Counts
4 → 96
Calls

4 calls:

93.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
57.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
11.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite34.0ms (0%)

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:

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

simplify125.0ms (0.1%)

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

prune172.0ms (0.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New19710207
Fresh011
Picked101
Done000
Total19811209
Error
7.5b
Counts
209 → 11
Alt Table
StatusErrorProgram
48.4b
(/.f64 (neg.f64 b) a)
56.7b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
35.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 2 a))
39.4b
(neg.f64 (/.f64 c b))
34.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
39.5b
(/.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.7b
(*.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))) 2) (/.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a))
33.2b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
44.8b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))))
38.8b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a))
40.6b
(/.f64 (cbrt.f64 (pow.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) 3)) (*.f64 2 a))
Compiler

Compiled 5711 to 3216 computations (43.7% saved)

localize9.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)
0.1b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
0.4b
(-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))
15.7b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series605.0ms (0.4%)

Counts
4 → 38
Calls

4 calls:

282.0ms
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
180.0ms
(-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))
121.0ms
(hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)
21.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite17.0ms (0%)

Algorithm
rewrite-expression-head
Rules
20×*-un-lft-identity_binary64
20×add-sqr-sqrt_binary64
14×add-cube-cbrt_binary64
10×pow1_binary64
prod-diff_binary64
Counts
4 → 84
Calls

4 calls:

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

simplify127.0ms (0.1%)

Algorithm
egg-herbie
Rules
675×fma-def_binary64
343×fma-neg_binary64
293×cancel-sign-sub-inv_binary64
146×distribute-rgt-in_binary64
144×distribute-rgt-neg-in_binary64
Counts
122 → 199
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02453472
16323007
221262816
344382808
449512808
548982808

prune176.0ms (0.1%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1945199
Fresh6410
Picked011
Done000
Total20010210
Error
3.5b
Counts
210 → 10
Alt Table
StatusErrorProgram
33.7b
(/.f64 (*.f64 (cbrt.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (cbrt.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (/.f64 a (/.f64 (cbrt.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b))) -2)))
34.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
39.5b
(/.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.6b
(/.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))))) (*.f64 a -2))
48.0b
(/.f64 (-.f64 b (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b)) (*.f64 a -2))
33.2b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
33.3b
(/.f64 1 (/.f64 (*.f64 a -2) (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
56.7b
(/.f64 (-.f64 b b) (*.f64 a -2))
48.4b
(/.f64 (neg.f64 b) a)
39.4b
(neg.f64 (/.f64 c b))
Compiler

Compiled 5944 to 3877 computations (34.8% saved)

localize11.0ms (0%)

Local error

Found 4 expressions with local error:

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

series771.0ms (0.5%)

Counts
2 → 24
Calls

2 calls:

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

rewrite22.0ms (0%)

Algorithm
rewrite-expression-head
Rules
58×times-frac_binary64
36×*-un-lft-identity_binary64
36×add-sqr-sqrt_binary64
28×add-exp-log_binary64
24×add-cube-cbrt_binary64
Counts
2 → 103
Calls

2 calls:

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

simplify99.0ms (0.1%)

Algorithm
egg-herbie
Rules
738×associate-/r*_binary64
443×associate-/r/_binary64
382×fma-def_binary64
309×associate-/l/_binary64
154×cancel-sign-sub-inv_binary64
Counts
127 → 194
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02234601
15874063
219713995
352013995

prune255.0ms (0.2%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2793282
Fresh178
Picked011
Done101
Total28111292
Error
3.5b
Counts
292 → 11
Alt Table
StatusErrorProgram
33.7b
(/.f64 (*.f64 (cbrt.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (cbrt.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (/.f64 a (/.f64 (cbrt.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 -4 (*.f64 c a))) b))) -2)))
34.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
39.5b
(/.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.6b
(/.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))))) (*.f64 a -2))
48.4b
(/.f64 (neg.f64 b) a)
48.5b
(/.f64 1 (neg.f64 (/.f64 a b)))
39.4b
(neg.f64 (/.f64 c b))
45.2b
(/.f64 1 (fma.f64 4 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 c a))) (/.f64 a b)))
48.0b
(/.f64 (-.f64 b (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b)) (*.f64 a -2))
33.3b
(/.f64 1 (/.f64 (*.f64 a -2) (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
48.0b
(/.f64 1 (/.f64 (*.f64 a -2) (-.f64 b (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 -4 a))) b))))
Compiler

Compiled 8977 to 6010 computations (33.1% saved)

localize144.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 b)
11.2b
(fma.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))))
15.7b
(sqrt.f64 (*.f64 c (*.f64 a -4)))
44.7b
(fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))))

series2.4min (94.8%)

Profiling

Loading profile data...