Details

Time bar (total: 19.5s)

analyze2.9s (14.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
0%98.1%1.9%13
0%98.1%1.9%14
Compiler

Compiled 59 to 22 computations (62.7% saved)

sample9.1s (47%)

Results
3.1s15874×body128invalid
2.2s2204×body4096valid
1.4s1191×body8192valid
1.0s1267×body2048valid
479.0ms2436×body128valid
462.0ms710×body1024valid
139.0ms299×body512valid
48.0ms149×body256valid
43.0ms55×body2048invalid
42.0ms56×body1024invalid
20.0ms41×body512invalid
11.0ms10×body8192exit
8.0msbody4096invalid
7.0ms22×body256invalid
Compiler

Compiled 176 to 65 computations (63.1% saved)

simplify43.0ms (0.2%)

Algorithm
egg-herbie
Rules
599×times-frac_binary64
518×distribute-neg-frac_binary64
416×fma-def_binary64
304×associate-/l*_binary64
217×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02278
16474
229674
3310367
4421867
5536567

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
59.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
62.3b
(*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 (*.f64 d d) (/.f64 c0 (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (*.f64 (*.f64 (/.f64 d D) (pow.f64 (/.f64 d D) 3)) (/.f64 c0 (*.f64 w h)))) (*.f64 M M)))))
60.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))))
Compiler

Compiled 321 to 130 computations (59.5% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
12.8b
(sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))
14.2b
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))))
17.0b
(/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))
28.3b
(+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))

series952.0ms (4.9%)

Counts
4 → 276
Calls

4 calls:

343.0ms
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))))
239.0ms
(sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))
216.0ms
(+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))
153.0ms
(/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))

rewrite165.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
251×add-sqr-sqrt_binary64
240×log1p-expm1-u_binary64
240×expm1-log1p-u_binary64
236×add-log-exp_binary64
235×add-cube-cbrt_binary64
Counts
4 → 82
Calls

4 calls:

162.0ms
(sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))
162.0ms
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))))
162.0ms
(/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))
162.0ms
(+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022160
1501156
25088156

simplify461.0ms (2.4%)

Algorithm
egg-herbie
Rules
476×associate-*r*_binary64
441×times-frac_binary64
329×associate-*l*_binary64
303×fma-neg_binary64
298×associate-/r*_binary64
Counts
358 → 208
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
030715852
196615734
2485715734
3508515734

prune480.0ms (2.5%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New23711248
Fresh011
Picked101
Done000
Total23812250
Error
30.2b
Counts
250 → 12
Alt Table
StatusErrorProgram
63.3b
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 (neg.f64 (pow.f64 M 2))) c0) w)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))))
59.6b
(log.f64 (pow.f64 (exp.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M))))) (/.f64 c0 (*.f64 w 2))))
36.5b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2)))
44.4b
(*.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 1/2 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) (*.f64 w h))) (*.f64 (*.f64 d d) c0))))
60.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))))
61.6b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 w (*.f64 w h))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
62.3b
(*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 (*.f64 d d) (/.f64 c0 (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (*.f64 (*.f64 (/.f64 d D) (pow.f64 (/.f64 d D) 3)) (/.f64 c0 (*.f64 w h)))) (*.f64 M M)))))
61.1b
(/.f64 (*.f64 (*.f64 d d) (*.f64 c0 c0)) (*.f64 (*.f64 D D) (*.f64 w (*.f64 w h))))
63.1b
(exp.f64 (log.f64 (*.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) (/.f64 c0 (*.f64 w 2)))))
50.2b
(*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 (neg.f64 (pow.f64 M 2))) c0) w))
62.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (pow.f64 (pow.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) 3) 1/3))
42.8b
(*.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (pow.f64 d 2) c0))))
Compiler

Compiled 14439 to 6111 computations (57.7% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
7.1b
(*.f64 (pow.f64 M 2) h)
14.8b
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))
14.9b
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))

series163.0ms (0.8%)

Counts
3 → 40
Calls

3 calls:

122.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))
28.0ms
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))
13.0ms
(*.f64 (pow.f64 M 2) h)

rewrite66.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
644×log-prod_binary64
208×expm1-udef_binary64
208×log1p-udef_binary64
197×log-pow_binary64
119×add-sqr-sqrt_binary64
Counts
3 → 86
Calls

3 calls:

65.0ms
(*.f64 (pow.f64 M 2) h)
65.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))
65.0ms
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01239
125132
2289832
3510132

simplify95.0ms (0.5%)

Algorithm
egg-herbie
Rules
1383×associate-/r/_binary64
563×unswap-sqr_binary64
511×times-frac_binary64
359×associate-/l*_binary64
214×associate-*l*_binary64
Counts
126 → 92
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012544
129544
280544
3346544
42365544
52719544
63302544
73346544
83458544
93600544
105305544

prune164.0ms (0.8%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New741892
Fresh5611
Picked101
Done000
Total8024104
Error
16.1b
Counts
104 → 24
Alt Table
StatusErrorProgram
61.6b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 w (*.f64 w h))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
43.3b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (exp.f64 (log.f64 (*.f64 (*.f64 M M) h)))) (pow.f64 d 2)))
41.2b
(*.f64 1/4 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))
63.1b
(exp.f64 (log.f64 (*.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) (/.f64 c0 (*.f64 w 2)))))
25.3b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (*.f64 D M) 2) d) (/.f64 h d)))
63.3b
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 (neg.f64 (pow.f64 M 2))) c0) w)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))))
24.3b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 h (pow.f64 (*.f64 D M) 2))) 2) d) (/.f64 (cbrt.f64 (*.f64 h (pow.f64 (*.f64 D M) 2))) d)))
36.5b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 M M) h)) 3)) (pow.f64 d 2)))
27.6b
(*.f64 1/4 (/.f64 (pow.f64 (cbrt.f64 (*.f64 h (pow.f64 (*.f64 D M) 2))) 3) (pow.f64 d 2)))
62.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (pow.f64 (pow.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) 3) 1/3))
27.5b
(*.f64 1/4 (*.f64 (*.f64 (pow.f64 (*.f64 D M) 2) (neg.f64 h)) (/.f64 1 (neg.f64 (*.f64 d d)))))
34.5b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 D D) d) (/.f64 (*.f64 (*.f64 M M) h) d)))
28.6b
(*.f64 1/4 (*.f64 (pow.f64 (*.f64 D M) 2) (*.f64 h (pow.f64 d -2))))
45.7b
(*.f64 1/4 (*.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) (*.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) (pow.f64 d -2))))
41.4b
(*.f64 1/4 (expm1.f64 (log1p.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))
41.3b
(*.f64 1/4 (*.f64 (cbrt.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2)) (pow.f64 (cbrt.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2)) 2)))
60.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))))
41.3b
(*.f64 1/4 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2)) 3))
62.3b
(*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 (*.f64 d d) (/.f64 c0 (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (*.f64 (*.f64 (/.f64 d D) (pow.f64 (/.f64 d D) 3)) (/.f64 c0 (*.f64 w h)))) (*.f64 M M)))))
33.8b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (*.f64 D M) 2) (cbrt.f64 (pow.f64 d 4))) (/.f64 h (pow.f64 (cbrt.f64 d) 2))))
48.1b
(*.f64 1/4 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))) (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))))
24.2b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d)))
40.5b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 (*.f64 M M) h) (cbrt.f64 (pow.f64 d 4))) (/.f64 (*.f64 D D) (pow.f64 (cbrt.f64 d) 2))))
25.4b
(*.f64 1/4 (pow.f64 (*.f64 (/.f64 d (pow.f64 (*.f64 D M) 2)) (/.f64 d h)) -1))
Compiler

Compiled 3053 to 1840 computations (39.7% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 D M) 2)
3.6b
(*.f64 (/.f64 1 d) (/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d))
5.0b
(/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d)
5.2b
(*.f64 h (pow.f64 (*.f64 D M) 2))

series251.0ms (1.3%)

Counts
4 → 156
Calls

4 calls:

158.0ms
(*.f64 (/.f64 1 d) (/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d))
59.0ms
(/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d)
26.0ms
(*.f64 h (pow.f64 (*.f64 D M) 2))
7.0ms
(pow.f64 (*.f64 D M) 2)

rewrite76.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
685×log-prod_binary64
220×expm1-udef_binary64
220×log1p-udef_binary64
203×log-pow_binary64
158×egg-rr
Counts
4 → 158
Calls

4 calls:

73.0ms
(pow.f64 (*.f64 D M) 2)
73.0ms
(*.f64 (/.f64 1 d) (/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d))
73.0ms
(/.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) d)
73.0ms
(*.f64 h (pow.f64 (*.f64 D M) 2))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01346
127145
2319145
3557245

simplify226.0ms (1.2%)

Algorithm
egg-herbie
Rules
726×times-frac_binary64
537×associate-/l*_binary64
382×unswap-sqr_binary64
367×associate-*l*_binary64
364×sqr-pow_binary64
Counts
314 → 168
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0182388
1352388
21072388
34892388
433882388
540852388
640562388
741772388
843322388
944922388
1046362388
1147852388
1249182388

prune376.0ms (1.9%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New15711168
Fresh61723
Picked101
Done000
Total16428192
Error
15.6b
Counts
192 → 28
Alt Table
StatusErrorProgram
34.3b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (*.f64 (pow.f64 D 2) (*.f64 h (pow.f64 M 2))) d)))
61.6b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 w (*.f64 w h))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
43.3b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (exp.f64 (log.f64 (*.f64 (*.f64 M M) h)))) (pow.f64 d 2)))
41.2b
(*.f64 1/4 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))
42.1b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (*.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (/.f64 1 d)))))
33.8b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (*.f64 D M) 2) (cbrt.f64 (pow.f64 d 4))) (/.f64 h (pow.f64 (cbrt.f64 d) 2))))
63.1b
(exp.f64 (log.f64 (*.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) (/.f64 c0 (*.f64 w 2)))))
25.3b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (*.f64 D M) 2) d) (/.f64 h d)))
24.3b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2))))))
63.3b
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 (neg.f64 (pow.f64 M 2))) c0) w)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))))
25.2b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (*.f64 h (*.f64 D (*.f64 M (*.f64 D M)))) d)))
37.5b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (log.f64 (pow.f64 (exp.f64 h) (pow.f64 (*.f64 D M) 2))) d)))
53.2b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (sqrt.f64 d)) (/.f64 d (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (sqrt.f64 d)))))
36.5b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 M M) h)) 3)) (pow.f64 d 2)))
53.8b
(*.f64 1/4 (*.f64 (/.f64 1 d) (pow.f64 (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (sqrt.f64 d)) 2)))
26.2b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (*.f64 h (*.f64 M (*.f64 D (*.f64 D M)))) d)))
41.4b
(*.f64 1/4 (pow.f64 (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) d) 2))
62.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (pow.f64 (pow.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) 3) 1/3))
27.5b
(*.f64 1/4 (*.f64 (*.f64 (pow.f64 (*.f64 D M) 2) (neg.f64 h)) (/.f64 1 (neg.f64 (*.f64 d d)))))
34.5b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 D D) d) (/.f64 (*.f64 (*.f64 M M) h) d)))
41.4b
(*.f64 1/4 (expm1.f64 (log1p.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))
60.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))))
41.3b
(*.f64 1/4 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2)) 3))
62.3b
(*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 (*.f64 d d) (/.f64 c0 (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (*.f64 (*.f64 (/.f64 d D) (pow.f64 (/.f64 d D) 3)) (/.f64 c0 (*.f64 w h)))) (*.f64 M M)))))
48.1b
(*.f64 1/4 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))) (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))))
28.6b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (expm1.f64 (log1p.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)))) d)))
24.3b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (pow.f64 (cbrt.f64 (*.f64 h (pow.f64 (*.f64 D M) 2))) 3) d)))
45.7b
(*.f64 1/4 (*.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) (*.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) (pow.f64 d -2))))
Compiler

Compiled 4758 to 2913 computations (38.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2)))
3.6b
(*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2)))))
5.5b
(/.f64 d (pow.f64 (*.f64 D M) 2))
6.4b
(*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2))))

series288.0ms (1.5%)

Counts
4 → 168
Calls

4 calls:

108.0ms
(*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2)))))
94.0ms
(/.f64 d (pow.f64 (*.f64 D M) 2))
55.0ms
(*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2))))
31.0ms
(/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2)))

rewrite89.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
758×log-prod_binary64
240×expm1-udef_binary64
240×log1p-udef_binary64
227×log-pow_binary64
155×egg-rr
Counts
4 → 155
Calls

4 calls:

86.0ms
(/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2)))
86.0ms
(*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2)))))
86.0ms
(/.f64 d (pow.f64 (*.f64 D M) 2))
86.0ms
(*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01452
129749
2346249
3605649

simplify144.0ms (0.7%)

Algorithm
egg-herbie
Rules
861×times-frac_binary64
571×associate-/l*_binary64
445×unswap-sqr_binary64
401×associate-/r*_binary64
387×associate-*l*_binary64
Counts
323 → 165
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0202616
1412616
21212616
35512616
438942616
547112616
646882616
748412616
849352616

prune433.0ms (2.2%)

Pruning

29 alts after pruning (28 fresh and 1 done)

PrunedKeptTotal
New1596165
Fresh52227
Picked011
Done000
Total16429193
Error
15.4b
Counts
193 → 29
Alt Table
StatusErrorProgram
34.3b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (*.f64 (pow.f64 D 2) (*.f64 h (pow.f64 M 2))) d)))
61.6b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 w (*.f64 w h))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
43.3b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (exp.f64 (log.f64 (*.f64 (*.f64 M M) h)))) (pow.f64 d 2)))
53.0b
(*.f64 1/4 (/.f64 (/.f64 (sqrt.f64 h) (/.f64 (sqrt.f64 d) (*.f64 D M))) (/.f64 d (/.f64 (sqrt.f64 h) (/.f64 (sqrt.f64 d) (*.f64 D M))))))
62.3b
(*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 (*.f64 d d) (/.f64 c0 (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (*.f64 (*.f64 (/.f64 d D) (pow.f64 (/.f64 d D) 3)) (/.f64 c0 (*.f64 w h)))) (*.f64 M M)))))
33.1b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 d (pow.f64 (*.f64 D M) 2)))) (cbrt.f64 (exp.f64 (/.f64 d (pow.f64 (*.f64 D M) 2)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 d (pow.f64 (*.f64 D M) 2))))))))))
33.8b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (*.f64 D M) 2) (cbrt.f64 (pow.f64 d 4))) (/.f64 h (pow.f64 (cbrt.f64 d) 2))))
63.1b
(exp.f64 (log.f64 (*.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) (/.f64 c0 (*.f64 w 2)))))
25.3b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 (*.f64 D M) 2) d) (/.f64 h d)))
33.0b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (*.f64 (/.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 D D)) (/.f64 (cbrt.f64 d) (*.f64 M M)))))))
24.3b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 h (/.f64 1 (/.f64 d (pow.f64 (*.f64 D M) 2))))))
63.3b
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 (neg.f64 (pow.f64 M 2))) c0) w)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))))
42.5b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (/.f64 h (/.f64 (sqrt.f64 d) (*.f64 D M))) (/.f64 (sqrt.f64 d) (*.f64 D M)))))
37.5b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (log.f64 (pow.f64 (exp.f64 h) (pow.f64 (*.f64 D M) 2))) d)))
53.2b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (sqrt.f64 d)) (/.f64 d (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (sqrt.f64 d)))))
26.2b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (*.f64 h (*.f64 M (*.f64 D (*.f64 D M)))) d)))
41.4b
(*.f64 1/4 (pow.f64 (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) d) 2))
33.1b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 h (*.f64 (/.f64 (*.f64 D D) 1) (/.f64 (*.f64 M M) d)))))
62.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (pow.f64 (pow.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 2) (*.f64 M M)))) 3) 1/3))
27.5b
(*.f64 1/4 (*.f64 (*.f64 (pow.f64 (*.f64 D M) 2) (neg.f64 h)) (/.f64 1 (neg.f64 (*.f64 d d)))))
22.0b
(*.f64 1/4 (*.f64 (/.f64 1 d) (*.f64 h (*.f64 (/.f64 (*.f64 D M) 1) (/.f64 (*.f64 D M) d)))))
34.5b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 D D) d) (/.f64 (*.f64 (*.f64 M M) h) d)))
41.4b
(*.f64 1/4 (expm1.f64 (log1p.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))
60.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))))
41.3b
(*.f64 1/4 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2)) 3))
48.1b
(*.f64 1/4 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))) (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) d) 2))))))
53.8b
(*.f64 1/4 (*.f64 (/.f64 1 d) (pow.f64 (/.f64 (*.f64 (*.f64 D M) (sqrt.f64 h)) (sqrt.f64 d)) 2)))
24.3b
(*.f64 1/4 (*.f64 (/.f64 1 d) (/.f64 (pow.f64 (cbrt.f64 (*.f64 h (pow.f64 (*.f64 D M) 2))) 3) d)))
45.7b
(*.f64 1/4 (*.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) (*.f64 (*.f64 D (*.f64 M (sqrt.f64 h))) (pow.f64 d -2))))
Compiler

Compiled 4152 to 2600 computations (37.4% saved)

regimes2.2s (11.4%)

Accuracy

Total 5.9b remaining (29.1%)

Threshold costs 0b (0%)

Counts
163 → 2
Compiler

Compiled 44456 to 31326 computations (29.5% saved)

bsearch193.0ms (1%)

Steps
ItersRangePoint
10
-1.967233185311223e-302
6.834712372841236e-302
-3.7426609267893e-310
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
1-exp_binary64
unpow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02543
13343
23243

end481.0ms (2.5%)

Compiler

Compiled 914 to 617 computations (32.5% saved)

Profiling

Loading profile data...