Details

Time bar (total: 8.6s)

analyze962.0ms (11.2%)

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
18.7%76.5%4.8%7
28.1%66.3%5.6%8
34.7%55.4%9.9%9
36.1%51.1%12.8%10
42.1%42.4%15.5%11
47.5%33.8%18.7%12
48.8%30.7%20.6%13
51.8%25.6%22.5%14
Compiler

Compiled 17 to 11 computations (35.3% saved)

sample2.3s (27.2%)

Results
661.0ms5369×body128valid
549.0ms1183×body2048valid
286.0ms758×body1024valid
229.0ms422×body4096valid
127.0ms1116×body128invalid
96.0ms335×body512valid
39.0ms189×body256valid
Compiler

Compiled 50 to 32 computations (36% saved)

simplify88.0ms (1%)

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
35.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
35.5b
(/.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)
1.0b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
1.6b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
21.7b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series183.0ms (2.1%)

Counts
4 → 96
Calls

4 calls:

76.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)
46.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
9.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))

rewrite131.0ms (1.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:

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

simplify261.0ms (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
02725492
16834712
224844515
345214514
449154514
549904514
650004514
749994514
849324514

prune153.0ms (1.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New22512237
Fresh000
Picked101
Done000
Total22612238
Error
6.0b
Counts
238 → 12
Alt Table
StatusErrorProgram
44.0b
(/.f64 (*.f64 -1/2 (/.f64 (*.f64 c a) b_2)) a)
33.0b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
34.9b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2))) a)
39.2b
(/.f64 (-.f64 (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2))) b_2) a)
33.5b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (cbrt.f64 a))
33.1b
(/.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2))) a)
47.6b
(/.f64 (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (*.f64 b_2 b_2)) (*.f64 a (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
35.5b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) (/.f64 1 a))
46.7b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
38.3b
(*.f64 -1/2 (/.f64 c b_2))
46.5b
(/.f64 (*.f64 -2 b_2) a)
Compiler

Compiled 5969 to 1726 computations (71.1% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2)
0.1b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
0.5b
(-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)
13.5b
(sqrt.f64 (neg.f64 (*.f64 c a)))

series492.0ms (5.7%)

Counts
4 → 38
Calls

4 calls:

216.0ms
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
149.0ms
(-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2)
108.0ms
(hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2)
19.0ms
(sqrt.f64 (neg.f64 (*.f64 c a)))

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
34×add-sqr-sqrt_binary64
33×*-un-lft-identity_binary64
23×add-cube-cbrt_binary64
15×times-frac_binary64
prod-diff_binary64
Counts
4 → 98
Calls

4 calls:

5.0ms
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) 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)))
0.0ms
(hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2)

simplify117.0ms (1.4%)

Algorithm
egg-herbie
Rules
713×fma-def_binary64
405×fma-neg_binary64
351×cancel-sign-sub-inv_binary64
265×div-sub_binary64
202×associate-/l/_binary64
Counts
136 → 175
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02483637
15953108
219742972
345712968
450932968

prune98.0ms (1.1%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1723175
Fresh4711
Picked011
Done000
Total17611187
Error
0.1b
Counts
187 → 11
Alt Table
StatusErrorProgram
44.0b
(/.f64 (*.f64 -1/2 (/.f64 (*.f64 c a) b_2)) a)
33.0b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
33.1b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2) a)
33.5b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (cbrt.f64 a))
47.6b
(/.f64 (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (*.f64 b_2 b_2)) (*.f64 a (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
35.5b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) (/.f64 1 a))
46.7b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
38.3b
(*.f64 -1/2 (/.f64 c b_2))
45.3b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (neg.f64 c)) (sqrt.f64 a)) b_2) b_2) a)
47.3b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (neg.f64 a))) b_2) b_2) a)
Compiler

Compiled 4543 to 1427 computations (68.6% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2) a)
0.3b
(*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))))
0.5b
(-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2)
13.5b
(sqrt.f64 (neg.f64 (*.f64 c a)))

series384.0ms (4.5%)

Counts
3 → 24
Calls

3 calls:

215.0ms
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2) a)
151.0ms
(-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2)
18.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))))

rewrite35.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
98×sqrt-prod_binary64
89×add-sqr-sqrt_binary64
43×*-un-lft-identity_binary64
33×add-cube-cbrt_binary64
32×sqrt-pow1_binary64
Counts
3 → 164
Calls

3 calls:

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

simplify161.0ms (1.9%)

Algorithm
egg-herbie
Rules
548×fma-def_binary64
365×fma-neg_binary64
318×cancel-sign-sub-inv_binary64
269×div-sub_binary64
211×distribute-rgt-neg-in_binary64
Counts
188 → 242
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02874193
16193570
222643439
343163421
448903403
548833403

prune150.0ms (1.7%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New2791280
Fresh099
Picked011
Done011
Total27912291
Error
0.1b
Counts
291 → 12
Alt Table
StatusErrorProgram
44.0b
(/.f64 (*.f64 -1/2 (/.f64 (*.f64 c a) b_2)) a)
33.0b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
33.1b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2) a)
33.5b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (cbrt.f64 a))
45.4b
(/.f64 (-.f64 (hypot.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 c))) (sqrt.f64 (sqrt.f64 (neg.f64 c)))) (*.f64 (sqrt.f64 (sqrt.f64 a)) (sqrt.f64 (sqrt.f64 a)))) b_2) b_2) a)
47.6b
(/.f64 (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (*.f64 b_2 b_2)) (*.f64 a (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
35.5b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) (/.f64 1 a))
46.7b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
38.3b
(*.f64 -1/2 (/.f64 c b_2))
45.3b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (neg.f64 c)) (sqrt.f64 a)) b_2) b_2) a)
47.3b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (neg.f64 a))) b_2) b_2) a)
Compiler

Compiled 8079 to 1965 computations (75.7% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series89.0ms (1%)

Counts
2 → 24
Calls

2 calls:

48.0ms
(cbrt.f64 a)
41.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))

rewrite17.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
19×cbrt-prod_binary64
19×add-sqr-sqrt_binary64
11×*-un-lft-identity_binary64
11×add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 55
Calls

2 calls:

10.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
1.0ms
(cbrt.f64 a)

simplify89.0ms (1%)

Algorithm
egg-herbie
Rules
577×distribute-rgt-in_binary64
561×log-prod_binary64
538×distribute-lft-in_binary64
525×unswap-sqr_binary64
384×fma-def_binary64
Counts
79 → 74
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
058600
198524
2296486
3769472
41799410
54649410
64805410

prune89.0ms (1%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New1842186
Fresh099
Picked101
Done022
Total18513198
Error
0.1b
Counts
198 → 13
Alt Table
StatusErrorProgram
44.0b
(/.f64 (*.f64 -1/2 (/.f64 (*.f64 c a) b_2)) a)
45.5b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (neg.f64 c)) (sqrt.f64 a)) b_2) b_2) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (cbrt.f64 a))
33.0b
(/.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 c a))) b_2) b_2) a)
47.6b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (neg.f64 a))) b_2) b_2) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (cbrt.f64 a))
47.3b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (neg.f64 a))) b_2) b_2) a)
33.1b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a)))) (sqrt.f64 (sqrt.f64 (neg.f64 (*.f64 c a))))) b_2) b_2) a)
45.4b
(/.f64 (-.f64 (hypot.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (neg.f64 c))) (sqrt.f64 (sqrt.f64 (neg.f64 c)))) (*.f64 (sqrt.f64 (sqrt.f64 a)) (sqrt.f64 (sqrt.f64 a)))) b_2) b_2) a)
47.6b
(/.f64 (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (*.f64 b_2 b_2)) (*.f64 a (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)))
35.5b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) (/.f64 1 a))
46.7b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.0b
(fma.f64 -1/2 (/.f64 c b_2) (*.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b_2 3)) -1/8))
38.3b
(*.f64 -1/2 (/.f64 c b_2))
45.3b
(/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 (neg.f64 c)) (sqrt.f64 a)) b_2) b_2) a)
Compiler

Compiled 4951 to 1253 computations (74.7% saved)

regimes2.5s (28.8%)

Accuracy

Total 10.7b remaining (98.9%)

Threshold costs 0b (0%)

Counts
122 → 3
Compiler

Compiled 11196 to 5970 computations (46.7% saved)

bsearch76.0ms (0.9%)

Steps
ItersRangePoint
8
3.5907500521455914e-131
1.1967527942565637e-128
1.1278526500339968e-128
8
-1.6793904482898417e+44
-1.0360115977548017e+40
-1.655034185872448e+44
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

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
02852
14052
25252
36052
46552
56652
66452

end154.0ms (1.8%)

Compiler

Compiled 320 to 187 computations (41.6% saved)

Profiling

Loading profile data...