Details

Time bar (total: 6.8s)

analyze266.0ms (3.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
40.6%54.6%4.8%7
48.4%46%5.6%8
53.8%37.8%8.3%9
56.2%32.6%11.3%10
60.8%26%13.1%11
63.8%21%15.2%12
65.1%17.8%17%13
67.7%13.9%18.4%14
Compiler

Compiled 17 to 11 computations (35.3% saved)

sample1.9s (27.6%)

Results
585.0ms5562×body128valid
398.0ms1125×body2048valid
200.0ms667×body1024valid
161.0ms372×body4096valid
85.0ms378×body512valid
69.0ms717×body128invalid
24.0ms152×body256valid
Compiler

Compiled 50 to 32 computations (36% saved)

simplify305.0ms (4.5%)

Algorithm
egg-herbie
Rules
808×fma-neg_binary64
379×associate-/l*_binary64
361×div-sub_binary64
341×fma-def_binary64
224×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01120
12318
23918
36918
410718
517818
627918
738218
854718
958718
1085518
11124718
12111718
13103518
14104318
15105118
16107718
17109318
18112918
19113118
20114318
21105018

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
28.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
28.4b
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
Compiler

Compiled 58 to 30 computations (48.3% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
0.8b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
0.8b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
23.9b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series227.0ms (3.3%)

Counts
4 → 96
Calls

4 calls:

91.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
75.0ms
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
52.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
9.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))

rewrite31.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
52×add-sqr-sqrt_binary64
41×*-un-lft-identity_binary64
31×add-cube-cbrt_binary64
20×sqrt-prod_binary64
19×prod-diff_binary64
Counts
4 → 120
Calls

4 calls:

10.0ms
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
6.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
3.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
3.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))

simplify293.0ms (4.3%)

Algorithm
egg-herbie
Rules
682×fma-neg_binary64
364×cancel-sign-sub-inv_binary64
248×distribute-rgt-neg-in_binary64
220×distribute-lft-neg-in_binary64
172×distribute-rgt-in_binary64
Counts
216 → 237
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02725568
16834769
224844515
345214514
449154514
549904514
650004514
749994514
849324514

prune241.0ms (3.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22611237
Fresh000
Picked101
Done000
Total22711238
Error
5.0b
Counts
238 → 11
Alt Table
StatusErrorProgram
28.5b
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
28.8b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)))
29.2b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (cbrt.f64 a)))
46.9b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
41.8b
(/.f64 (-.f64 (cbrt.f64 (pow.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) 3)) b_2) a)
34.2b
(/.f64 (-.f64 (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2))) b_2) a)
42.2b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
28.7b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
42.0b
(*.f64 -1/2 (/.f64 c b_2))
28.8b
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)) a))
42.1b
(/.f64 (*.f64 -2 b_2) a)
Compiler

Compiled 5965 to 1716 computations (71.2% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
0.8b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
0.8b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
23.9b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series78.0ms (1.2%)

Counts
1 → 20
Calls

1 calls:

78.0ms
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))

rewrite29.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
144×times-frac_binary64
114×add-sqr-sqrt_binary64
90×*-un-lft-identity_binary64
66×add-cube-cbrt_binary64
24×associate-/r*_binary64
Counts
1 → 122
Calls

1 calls:

10.0ms
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))

simplify131.0ms (1.9%)

Algorithm
egg-herbie
Rules
812×fma-def_binary64
590×times-frac_binary64
369×associate-/l*_binary64
342×associate-/r*_binary64
214×associate-*l/_binary64
Counts
142 → 161
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01845087
14194704
213044398
343924398
450104398

prune225.0ms (3.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New3112313
Fresh4610
Picked011
Done000
Total3159324
Error
5.0b
Counts
324 → 9
Alt Table
StatusErrorProgram
28.5b
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
43.8b
(/.f64 (/.f64 (-.f64 (*.f64 b_2 b_2) (fma.f64 c a (*.f64 b_2 b_2))) a) (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
29.2b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (cbrt.f64 a)))
46.9b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
28.5b
(*.f64 (/.f64 1 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
34.2b
(/.f64 (-.f64 (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2))) b_2) a)
42.2b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(*.f64 -1/2 (/.f64 c b_2))
42.1b
(/.f64 (*.f64 -2 b_2) a)
Compiler

Compiled 8764 to 2611 computations (70.2% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 1 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
0.8b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
0.8b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
23.9b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series107.0ms (1.6%)

Counts
1 → 20
Calls

1 calls:

106.0ms
(*.f64 (/.f64 1 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))

rewrite23.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
46×add-sqr-sqrt_binary64
38×*-un-lft-identity_binary64
36×prod-diff_binary64
35×add-cube-cbrt_binary64
22×distribute-lft-in_binary64
Counts
1 → 88
Calls

1 calls:

12.0ms
(*.f64 (/.f64 1 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))

simplify118.0ms (1.7%)

Algorithm
egg-herbie
Rules
571×fma-def_binary64
565×associate-/l*_binary64
294×fma-neg_binary64
217×distribute-rgt-in_binary64
196×distribute-lft-in_binary64
Counts
108 → 132
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02193181
14902810
216192487
346012487
448872487
548512487

prune162.0ms (2.4%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2840284
Fresh077
Picked011
Done011
Total2849293
Error
5.0b
Counts
293 → 9
Alt Table
StatusErrorProgram
28.5b
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
43.8b
(/.f64 (/.f64 (-.f64 (*.f64 b_2 b_2) (fma.f64 c a (*.f64 b_2 b_2))) a) (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
29.2b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (cbrt.f64 a)))
46.9b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
28.5b
(*.f64 (/.f64 1 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
34.2b
(/.f64 (-.f64 (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2))) b_2) a)
42.2b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(*.f64 -1/2 (/.f64 c b_2))
42.1b
(/.f64 (*.f64 -2 b_2) a)
Compiler

Compiled 7872 to 2582 computations (67.2% saved)

localize73.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)
0.5b
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
0.5b
(cbrt.f64 a)
11.8b
(sqrt.f64 (neg.f64 (*.f64 c a)))

series250.0ms (3.7%)

Counts
4 → 36
Calls

4 calls:

154.0ms
(-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)
39.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
39.0ms
(cbrt.f64 a)
17.0ms
(sqrt.f64 (neg.f64 (*.f64 c a)))

rewrite20.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
33×add-sqr-sqrt_binary64
24×*-un-lft-identity_binary64
22×add-cube-cbrt_binary64
19×cbrt-prod_binary64
12×pow1_binary64
Counts
4 → 103
Calls

4 calls:

5.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
3.0ms
(-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)
1.0ms
(sqrt.f64 (neg.f64 (*.f64 c a)))
1.0ms
(cbrt.f64 a)

simplify103.0ms (1.5%)

Algorithm
egg-herbie
Rules
821×fma-def_binary64
559×associate-/l*_binary64
418×associate-/r*_binary64
233×fma-neg_binary64
200×cancel-sign-sub-inv_binary64
Counts
139 → 169
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01932143
13801657
212671554
343181545
449691545
548791545

prune108.0ms (1.6%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New2032205
Fresh246
Picked011
Done022
Total2059214
Error
0.3b
Counts
214 → 9
Alt Table
StatusErrorProgram
44.8b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (neg.f64 a))) b_2) b_2) (cbrt.f64 a)))
28.5b
(*.f64 (/.f64 1 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
28.5b
(/.f64 1 (/.f64 a (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
43.8b
(/.f64 (/.f64 (-.f64 (*.f64 b_2 b_2) (fma.f64 c a (*.f64 b_2 b_2))) a) (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2))
29.2b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (cbrt.f64 a)))
46.9b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
46.5b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (neg.f64 c)) (sqrt.f64 a)) b_2) b_2) (cbrt.f64 a)))
42.2b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(*.f64 -1/2 (/.f64 c b_2))
Compiler

Compiled 5734 to 1688 computations (70.6% saved)

regimes1.9s (28.1%)

Accuracy

Total 9.0b remaining (97.6%)

Threshold costs 0b (0%)

Counts
128 → 3
Compiler

Compiled 11272 to 6334 computations (43.8% saved)

bsearch53.0ms (0.8%)

Steps
ItersRangePoint
11
3.4258558715881774e-46
2.6291883852502892e-24
4.8226896466439825e-28
1
-1.0182173360101637e+155
-9.014208010881064e+151
-3.033237869256851e+153
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02546
14046
25346
36446
47246
57646
67746
77646

end127.0ms (1.9%)

Compiler

Compiled 239 to 148 computations (38.1% saved)

Profiling

Loading profile data...