Details

Time bar (total: 10.7s)

analyze3.0s (27.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.7%0.3%0
0%99.7%0.3%1
0%99.7%0.3%2
0%99.7%0.3%3
0%99.7%0.3%4
0%99.7%0.3%5
0%99.7%0.3%6
0%99.7%0.3%7
0%99.7%0.3%8
0%99.7%0.3%9
0%99.7%0.3%10
0%99.7%0.3%11
0%99.7%0.3%12
4.3%95.4%0.3%13
6.6%93.1%0.3%14
Compiler

Compiled 25 to 19 computations (24% saved)

sample2.5s (23.8%)

Symmetry

(sort M D)

Results
1.6s8256×body128valid
885.0ms4509×body128invalid
Compiler

Compiled 74 to 56 computations (24.3% saved)

simplify26.0ms (0.2%)

Algorithm
egg-herbie
Rules
645×distribute-neg-frac_binary64
581×distribute-rgt-neg-in_binary64
418×associate-/l*_binary64
372×cancel-sign-sub-inv_binary64
263×associate-/l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01827
14227
211127
372327
4285527
5499427
Stop Event
node limit
Counts
1 → 1

prune7.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
16.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
16.5b
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l)))))
Compiler

Compiled 72 to 54 computations (25% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l)))))
6.1b
(/.f64 (*.f64 M D) (*.f64 2 d))
6.7b
(sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))))
9.9b
(*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))

series575.0ms (5.4%)

Counts
4 → 204
Calls

4 calls:

243.0ms
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l)))))
192.0ms
(*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))
127.0ms
(sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))))
14.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))

rewrite89.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
593×prod-diff_binary64
190×add-sqr-sqrt_binary64
179×log1p-expm1-u_binary64
179×expm1-log1p-u_binary64
177×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01880
138480
2493280
3608680
Stop Event
node limit
Counts
4 → 119
Calls

4 calls:

86.0ms
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l)))))
86.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
86.0ms
(sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))))
86.0ms
(*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))

simplify229.0ms (2.1%)

Algorithm
egg-herbie
Rules
668×fma-def_binary64
276×unswap-sqr_binary64
262×times-frac_binary64
248×associate-*r*_binary64
246×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03108076
18108010
234707948
349427780
449847780
549597780
Stop Event
node limit
Counts
323 → 238

prune247.0ms (2.3%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New22810238
Fresh000
Picked101
Done000
Total22910239
Error
7.4b
Counts
239 → 10
Alt Table
StatusErrorProgram
16.6b
(*.f64 w0 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))))) 3))
61.8b
(*.f64 w0 (*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (neg.f64 M)))
14.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (*.f64 M (*.f64 D (/.f64 1/2 d))) 2) (/.f64 h l)))))
15.3b
w0
16.5b
(*.f64 w0 (pow.f64 (pow.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))) 1/4) 2))
13.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l))))
37.9b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) h) (sqrt.f64 l)) (sqrt.f64 l)))))
62.6b
(*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (*.f64 M w0))
60.2b
(*.f64 w0 (/.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) l) -1/4)) d))
60.9b
(*.f64 w0 (*.f64 D (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 M M) h) (*.f64 l (*.f64 d d))) -1/4))))
Compiler

Compiled 9251 to 5611 computations (39.3% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.1b
(*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))
4.7b
(/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l)
6.1b
(/.f64 (*.f64 M D) (*.f64 2 d))
6.7b
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l)))

series444.0ms (4.2%)

Counts
3 → 156
Calls

3 calls:

192.0ms
(/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l)
126.0ms
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l)))
125.0ms
(*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))

rewrite78.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
494×prod-diff_binary64
168×add-sqr-sqrt_binary64
159×log1p-expm1-u_binary64
159×expm1-log1p-u_binary64
157×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01659
134259
2446759
3545859
Stop Event
node limit
Counts
3 → 82
Calls

3 calls:

76.0ms
(*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))
76.0ms
(/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l)
76.0ms
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) l)))

simplify111.0ms (1%)

Algorithm
egg-herbie
Rules
587×associate-*l/_binary64
267×associate-/r/_binary64
264×fma-def_binary64
231×unswap-sqr_binary64
216×distribute-neg-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01855336
14955302
220115284
352575284
Stop Event
node limit
Counts
238 → 145

prune252.0ms (2.4%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1993202
Fresh279
Picked101
Done000
Total20210212
Error
6.7b
Counts
212 → 10
Alt Table
StatusErrorProgram
39.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (pow.f64 (*.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) (sqrt.f64 h)) 2) l))))
62.6b
(*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (*.f64 M w0))
14.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (*.f64 M (*.f64 D (/.f64 1/2 d))) 2) (/.f64 h l)))))
15.3b
w0
11.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l))))
60.2b
(*.f64 w0 (/.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) l) -1/4)) d))
16.5b
(*.f64 w0 (pow.f64 (pow.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))) 1/4) 2))
61.8b
(*.f64 w0 (*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (neg.f64 M)))
13.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l))))
60.9b
(*.f64 w0 (*.f64 D (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 M M) h) (*.f64 l (*.f64 d d))) -1/4))))
Compiler

Compiled 6866 to 4327 computations (37% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.7b
(*.f64 (/.f64 D d) (*.f64 M 1/2))
4.1b
(*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2))
4.7b
(/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l)
6.7b
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l)))

series451.0ms (4.2%)

Counts
4 → 192
Calls

4 calls:

186.0ms
(/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l)
124.0ms
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l)))
124.0ms
(*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2))
16.0ms
(*.f64 (/.f64 D d) (*.f64 M 1/2))

rewrite78.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
476×prod-diff_binary64
174×add-sqr-sqrt_binary64
167×log1p-expm1-u_binary64
167×expm1-log1p-u_binary64
164×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01769
136269
2442669
3534369
Stop Event
node limit
Counts
4 → 109
Calls

4 calls:

75.0ms
(*.f64 (/.f64 D d) (*.f64 M 1/2))
75.0ms
(*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2))
75.0ms
(/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l)
75.0ms
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l)))

simplify118.0ms (1.1%)

Algorithm
egg-herbie
Rules
590×associate-*l/_binary64
272×associate-/r/_binary64
264×fma-def_binary64
231×unswap-sqr_binary64
216×distribute-neg-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01885696
15045662
220325644
352875644
Stop Event
node limit
Counts
301 → 173

prune184.0ms (1.7%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1730173
Fresh099
Picked011
Done000
Total17310183
Error
6.7b
Counts
183 → 10
Alt Table
StatusErrorProgram
39.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (pow.f64 (*.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) (sqrt.f64 h)) 2) l))))
62.6b
(*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (*.f64 M w0))
14.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (*.f64 M (*.f64 D (/.f64 1/2 d))) 2) (/.f64 h l)))))
15.3b
w0
11.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l))))
60.2b
(*.f64 w0 (/.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) l) -1/4)) d))
16.5b
(*.f64 w0 (pow.f64 (pow.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))) 1/4) 2))
61.8b
(*.f64 w0 (*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (neg.f64 M)))
13.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l))))
60.9b
(*.f64 w0 (*.f64 D (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 M M) h) (*.f64 l (*.f64 d d))) -1/4))))
Compiler

Compiled 6128 to 3867 computations (36.9% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.1b
(*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2))
4.7b
(/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l)
5.8b
(/.f64 (*.f64 2 d) (*.f64 M D))
6.7b
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l)))

series457.0ms (4.3%)

Counts
4 → 192
Calls

4 calls:

201.0ms
(/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l)
121.0ms
(*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2))
116.0ms
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l)))
18.0ms
(/.f64 (*.f64 2 d) (*.f64 M D))

rewrite87.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
536×prod-diff_binary64
187×add-sqr-sqrt_binary64
177×log1p-expm1-u_binary64
177×expm1-log1p-u_binary64
174×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01869
138669
2493569
3598469
Stop Event
node limit
Counts
4 → 133
Calls

4 calls:

84.0ms
(*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2))
84.0ms
(/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l)
84.0ms
(/.f64 (*.f64 2 d) (*.f64 M D))
84.0ms
(sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l)))

simplify115.0ms (1.1%)

Algorithm
egg-herbie
Rules
592×associate-*l/_binary64
268×associate-/r/_binary64
264×fma-def_binary64
231×unswap-sqr_binary64
216×distribute-neg-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01885696
15045662
220365644
352875644
Stop Event
node limit
Counts
325 → 197

prune193.0ms (1.8%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1970197
Fresh088
Picked011
Done011
Total19710207
Error
6.7b
Counts
207 → 10
Alt Table
StatusErrorProgram
39.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (pow.f64 (*.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) (sqrt.f64 h)) 2) l))))
62.6b
(*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (*.f64 M w0))
14.8b
(*.f64 w0 (sqrt.f64 (-.f64 1 (*.f64 (pow.f64 (*.f64 M (*.f64 D (/.f64 1/2 d))) 2) (/.f64 h l)))))
15.3b
w0
11.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (*.f64 (/.f64 D d) (*.f64 M 1/2)) 2)) l))))
60.2b
(*.f64 w0 (/.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) l) -1/4)) d))
16.5b
(*.f64 w0 (pow.f64 (pow.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2) (/.f64 h l))) 1/4) 2))
61.8b
(*.f64 w0 (*.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 D D) h) (*.f64 l (*.f64 d d))) -1/4)) (neg.f64 M)))
13.2b
(*.f64 w0 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 h (pow.f64 (pow.f64 (/.f64 (*.f64 2 d) (*.f64 M D)) -1) 2)) l))))
60.9b
(*.f64 w0 (*.f64 D (sqrt.f64 (*.f64 (/.f64 (*.f64 (*.f64 M M) h) (*.f64 l (*.f64 d d))) -1/4))))
Compiler

Compiled 6642 to 4210 computations (36.6% saved)

regimes1.2s (10.9%)

Accuracy

Total 3.0b remaining (32.1%)

Threshold costs 0b (0%)

Counts
63 → 2
Compiler

Compiled 30416 to 22894 computations (24.7% saved)

bsearch57.0ms (0.5%)

Steps
ItersRangePoint
14
1.8632409427501411e+149
#hash((type . real) (value . +inf))
1.7832048700333877e+308
Compiler

Compiled 22 to 17 computations (22.7% 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
02257
13357
24257
35057
45657
55957
66057
75957
Stop Event
saturated

end154.0ms (1.4%)

Remove

(sort M D)

Compiler

Compiled 406 to 287 computations (29.3% saved)

Profiling

Loading profile data...