Details

Time bar (total: 17.0s)

analyze2.5s (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)

sample284.0ms (1.7%)

Algorithm
intervals
Results
46.0ms355×body128nan
41.0ms71×body4096valid
27.0ms38×body8192valid
18.0ms39×body2048valid
14.0ms130×body128invalid
8.0ms21×body1024valid
7.0ms71×body128valid
4.0ms13×body512valid
1.0msbody1024invalid
1.0msbody2048invalid
1.0msbody256valid
0.0msbody512invalid
Compiler

Compiled 123 to 49 computations (60.2% saved)

simplify44.0ms (0.3%)

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

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
60.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
62.6b
(*.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.5b
(*.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)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
12.3b
(*.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)))))
13.9b
(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)))
19.4b
(/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))
28.5b
(+.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))))

series1.4s (8.4%)

Counts
4 → 276
Calls

4 calls:

595.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)))))
324.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)))
302.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))))
205.0ms
(/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))

rewrite156.0ms (0.9%)

Algorithm
rewrite-expression-head
Rules
82×add-cbrt-cube_binary64
82×add-exp-log_binary64
43×cbrt-unprod_binary64
43×prod-exp_binary64
17×cbrt-undiv_binary64
Counts
4 → 124
Calls

4 calls:

45.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)))))
44.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))))
30.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)))
13.0ms
(/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))

simplify374.0ms (2.2%)

Algorithm
egg-herbie
Rules
550×associate-/r*_binary64
531×associate-/l*_binary64
317×associate-*l/_binary64
229×fma-def_binary64
172×*-commutative_binary64
Counts
400 → 312
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
053724212
1164921889
2500721889

prune672.0ms (4%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New42012432
Fresh101
Picked101
Done000
Total42212434
Error
27.9b
Counts
434 → 12
Alt Table
StatusErrorProgram
61.5b
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (*.f64 (sqrt.f64 (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)) (sqrt.f64 (-.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)))))
34.9b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2)))
60.4b
(*.f64 c0 (*.f64 (/.f64 1 (*.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))))))
60.5b
(*.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 1 (/.f64 (*.f64 (*.f64 w h) (*.f64 D D)) (*.f64 c0 (*.f64 d d))))) (*.f64 M M)))))
62.1b
(*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.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)))))
62.2b
(/.f64 (*.f64 c0 (+.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 3) (pow.f64 (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))) 3))) (*.f64 (*.f64 2 w) (+.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 (*.f64 (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))) (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)))) (*.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))))))))
61.5b
(exp.f64 (log.f64 (*.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)))))))
60.7b
(log.f64 (pow.f64 (exp.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (/.f64 (/.f64 (*.f64 (pow.f64 d 4) (*.f64 c0 c0)) (*.f64 (*.f64 w h) (*.f64 w h))) (pow.f64 D 4)) (*.f64 M M))))) (/.f64 c0 (*.f64 2 w))))
62.4b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
61.7b
(/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))
49.5b
(*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 (neg.f64 (pow.f64 M 2))) c0) w))
41.2b
(*.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 31097 to 8041 computations (74.1% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
7.5b
(*.f64 (pow.f64 M 2) h)
14.1b
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))
16.1b
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))

series177.0ms (1%)

Counts
3 → 40
Calls

3 calls:

135.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))
34.0ms
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))
9.0ms
(*.f64 (pow.f64 M 2) h)

rewrite32.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
141×add-exp-log_binary64
87×prod-exp_binary64
42×pow-exp_binary64
42×pow-to-exp_binary64
39×div-exp_binary64
Counts
3 → 133
Calls

3 calls:

8.0ms
(*.f64 (pow.f64 M 2) h)
7.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))
5.0ms
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))

simplify123.0ms (0.7%)

Algorithm
egg-herbie
Rules
468×associate-*l/_binary64
391×associate-/l/_binary64
373×*-commutative_binary64
370×associate-*r/_binary64
310×fma-def_binary64
Counts
173 → 160
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01643095
13322730
213612677
341282571
449132571
550862571

prune340.0ms (2%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New14515160
Fresh4711
Picked101
Done000
Total15022172
Error
20.7b
Counts
172 → 22
Alt Table
StatusErrorProgram
51.8b
(*.f64 1/4 (/.f64 (exp.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h)))) (pow.f64 d 2)))
58.6b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (log.f64 (pow.f64 D 2)) (+.f64 (*.f64 (log.f64 M) 2) (log.f64 h))) (*.f64 (log.f64 d) 2))))
42.0b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (log.f64 (exp.f64 (*.f64 (pow.f64 M 2) h)))) (pow.f64 d 2)))
62.2b
(/.f64 (*.f64 c0 (+.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 3) (pow.f64 (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))) 3))) (*.f64 (*.f64 2 w) (+.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 (*.f64 (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))) (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)))) (*.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))))))))
32.7b
(*.f64 1/4 (/.f64 (*.f64 D (*.f64 D (*.f64 (pow.f64 M 2) h))) (pow.f64 d 2)))
33.7b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 D) (cbrt.f64 D)) 2) (*.f64 (pow.f64 (cbrt.f64 D) 2) (*.f64 (pow.f64 M 2) h))) (pow.f64 d 2)))
51.6b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h))) (log.f64 (pow.f64 d 2)))))
31.3b
(*.f64 1/4 (/.f64 (pow.f64 D 2) (/.f64 d (/.f64 (*.f64 h (*.f64 M M)) d))))
57.3b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h))) (*.f64 (log.f64 d) 2))))
62.4b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
57.3b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (*.f64 (log.f64 M) 2) (log.f64 h))) (log.f64 (pow.f64 d 2)))))
61.7b
(/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))
60.4b
(*.f64 c0 (*.f64 (/.f64 1 (*.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))))))
60.5b
(*.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 1 (/.f64 (*.f64 (*.f64 w h) (*.f64 D D)) (*.f64 c0 (*.f64 d d))))) (*.f64 M M)))))
32.5b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 M h))) (pow.f64 d 2)))
60.7b
(log.f64 (pow.f64 (exp.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (/.f64 (/.f64 (*.f64 (pow.f64 d 4) (*.f64 c0 c0)) (*.f64 (*.f64 w h) (*.f64 w h))) (pow.f64 D 4)) (*.f64 M M))))) (/.f64 c0 (*.f64 2 w))))
61.5b
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (*.f64 (sqrt.f64 (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)) (sqrt.f64 (-.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)))))
33.0b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) 2)) (/.f64 (*.f64 (pow.f64 M 2) h) (pow.f64 (cbrt.f64 d) 2))))
56.6b
(*.f64 1/4 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (fma.f64 (log.f64 d) -2 (log.f64 h)))))
34.4b
(*.f64 1/4 (/.f64 (*.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) h) (pow.f64 d 2)))
30.6b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d) d))
30.9b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 D D) d) (/.f64 (*.f64 h (*.f64 M M)) d)))
Compiler

Compiled 5050 to 2977 computations (41% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.2b
(/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d) d)
4.8b
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d)
7.5b
(*.f64 (pow.f64 M 2) h)
14.1b
(*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))

series198.0ms (1.2%)

Counts
2 → 72
Calls

2 calls:

131.0ms
(/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d) d)
66.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d)

rewrite27.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
97×add-exp-log_binary64
42×prod-exp_binary64
40×div-exp_binary64
36×times-frac_binary64
25×add-cbrt-cube_binary64
Counts
2 → 97
Calls

2 calls:

8.0ms
(/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d) d)
7.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) d)

simplify133.0ms (0.8%)

Algorithm
egg-herbie
Rules
675×associate-*l/_binary64
526×associate-*r/_binary64
515×associate-/r/_binary64
350×*-commutative_binary64
221×fma-def_binary64
Counts
169 → 139
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01563824
13503490
213473478
339553379
448543379
549713379

prune544.0ms (3.2%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New21514229
Fresh61521
Picked101
Done000
Total22229251
Error
19.2b
Counts
251 → 29
Alt Table
StatusErrorProgram
60.5b
(*.f64 1/4 (/.f64 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (*.f64 (log.f64 M) 2) (log.f64 h))) (log.f64 d))) d))
58.6b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (log.f64 (pow.f64 D 2)) (+.f64 (*.f64 (log.f64 M) 2) (log.f64 h))) (*.f64 (log.f64 d) 2))))
42.0b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (log.f64 (exp.f64 (*.f64 (pow.f64 M 2) h)))) (pow.f64 d 2)))
62.2b
(/.f64 (*.f64 c0 (+.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 3) (pow.f64 (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))) 3))) (*.f64 (*.f64 2 w) (+.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 (*.f64 (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))) (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)))) (*.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))))))))
49.4b
(*.f64 1/4 (/.f64 (/.f64 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (log.f64 h))) d) d))
60.7b
(log.f64 (pow.f64 (exp.f64 (fma.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D)) (sqrt.f64 (-.f64 (/.f64 (/.f64 (*.f64 (pow.f64 d 4) (*.f64 c0 c0)) (*.f64 (*.f64 w h) (*.f64 w h))) (pow.f64 D 4)) (*.f64 M M))))) (/.f64 c0 (*.f64 2 w))))
47.3b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 D D) (sqrt.f64 d)) (*.f64 (/.f64 h (pow.f64 d 3/2)) (*.f64 M M))))
51.0b
(*.f64 1/4 (/.f64 (/.f64 (exp.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h)))) d) d))
51.6b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h))) (log.f64 (pow.f64 d 2)))))
44.4b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 D 2) (exp.f64 (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h)))) d) d))
57.3b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h))) (*.f64 (log.f64 d) 2))))
62.4b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
30.4b
(*.f64 1/4 (*.f64 (*.f64 (/.f64 D (*.f64 d (cbrt.f64 d))) D) (/.f64 (*.f64 h (*.f64 M M)) (*.f64 (cbrt.f64 d) (cbrt.f64 d)))))
57.3b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (*.f64 (log.f64 M) 2) (log.f64 h))) (log.f64 (pow.f64 d 2)))))
61.7b
(/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))
30.7b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M)))) (cbrt.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M))))) (cbrt.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M))))) d) d))
33.0b
(*.f64 1/4 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) 2)) (/.f64 (*.f64 (pow.f64 M 2) h) (pow.f64 (cbrt.f64 d) 2))))
29.4b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 D) (cbrt.f64 D)) 2) (*.f64 (*.f64 h (*.f64 M M)) (pow.f64 (cbrt.f64 D) 2))) d) d))
31.2b
(*.f64 1/4 (*.f64 (/.f64 (/.f64 (pow.f64 D 2) (*.f64 (cbrt.f64 d) (cbrt.f64 d))) (*.f64 (cbrt.f64 d) (cbrt.f64 d))) (/.f64 (/.f64 (*.f64 (pow.f64 M 2) h) (cbrt.f64 d)) (cbrt.f64 d))))
56.6b
(*.f64 1/4 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (fma.f64 (log.f64 d) -2 (log.f64 h)))))
28.0b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 D (*.f64 D (*.f64 h (*.f64 M M)))) d) d))
60.4b
(*.f64 c0 (*.f64 (/.f64 1 (*.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))))))
27.8b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d) d))
34.4b
(*.f64 1/4 (/.f64 (*.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) h) (pow.f64 d 2)))
32.5b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 M h))) (pow.f64 d 2)))
56.6b
(*.f64 1/4 (exp.f64 (fma.f64 (log.f64 d) -2 (fma.f64 2 (log.f64 (*.f64 D M)) (log.f64 h)))))
61.5b
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (*.f64 (sqrt.f64 (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)) (sqrt.f64 (-.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)))))
31.3b
(*.f64 1/4 (/.f64 (/.f64 (pow.f64 D 2) 1) (*.f64 d (/.f64 d (*.f64 h (*.f64 M M))))))
50.5b
(*.f64 1/4 (/.f64 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (log.f64 (/.f64 h d)))) d))
Compiler

Compiled 7179 to 3870 computations (46.1% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 M (*.f64 h M))
3.2b
(/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d) d)
4.8b
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d)
14.1b
(*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M)))

series240.0ms (1.4%)

Counts
4 → 156
Calls

4 calls:

131.0ms
(/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d) d)
69.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d)
31.0ms
(*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M)))
9.0ms
(*.f64 M (*.f64 h M))

rewrite40.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
115×add-exp-log_binary64
57×prod-exp_binary64
52×add-cbrt-cube_binary64
36×times-frac_binary64
31×div-exp_binary64
Counts
4 → 144
Calls

4 calls:

9.0ms
(/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d)
8.0ms
(/.f64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))) d) d)
6.0ms
(*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M)))
4.0ms
(*.f64 M (*.f64 h M))

simplify176.0ms (1%)

Algorithm
egg-herbie
Rules
648×associate-*l/_binary64
547×associate-*r/_binary64
520×associate-/r/_binary64
430×*-commutative_binary64
245×fma-def_binary64
Counts
300 → 219
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01995602
14565047
215215035
344225023
449755023
550195023

prune438.0ms (2.6%)

Pruning

26 alts after pruning (26 fresh and 0 done)

PrunedKeptTotal
New2127219
Fresh91928
Picked101
Done000
Total22226248
Error
17.7b
Counts
248 → 26
Alt Table
StatusErrorProgram
62.2b
(/.f64 (*.f64 c0 (+.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) 3) (pow.f64 (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))) 3))) (*.f64 (*.f64 2 w) (+.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 (*.f64 (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))) (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)))) (*.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))))))))
27.6b
(*.f64 1/4 (/.f64 (*.f64 (/.f64 (pow.f64 D 2) 1) (/.f64 (*.f64 M (*.f64 h M)) d)) d))
42.0b
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (log.f64 (exp.f64 (*.f64 (pow.f64 M 2) h)))) (pow.f64 d 2)))
49.4b
(*.f64 1/4 (/.f64 (/.f64 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (log.f64 h))) d) d))
47.3b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 D D) (sqrt.f64 d)) (*.f64 (/.f64 h (pow.f64 d 3/2)) (*.f64 M M))))
51.0b
(*.f64 1/4 (/.f64 (/.f64 (exp.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h)))) d) d))
51.6b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h))) (log.f64 (pow.f64 d 2)))))
44.4b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 D 2) (exp.f64 (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h)))) d) d))
57.3b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (log.f64 (pow.f64 M 2)) (log.f64 h))) (*.f64 (log.f64 d) 2))))
62.4b
(fma.f64 (/.f64 (*.f64 d d) (*.f64 D D)) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w))) (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 d d)) -1/4))
30.4b
(*.f64 1/4 (*.f64 (*.f64 (/.f64 D (*.f64 d (cbrt.f64 d))) D) (/.f64 (*.f64 h (*.f64 M M)) (*.f64 (cbrt.f64 d) (cbrt.f64 d)))))
57.3b
(*.f64 1/4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 D) 2) (+.f64 (*.f64 (log.f64 M) 2) (log.f64 h))) (log.f64 (pow.f64 d 2)))))
61.7b
(/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))
56.6b
(*.f64 1/4 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (fma.f64 (log.f64 d) -2 (log.f64 h)))))
24.5b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 D (*.f64 D (*.f64 M (*.f64 h M)))) d) d))
60.4b
(*.f64 c0 (*.f64 (/.f64 1 (*.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))))))
28.1b
(*.f64 1/4 (*.f64 (/.f64 (/.f64 (pow.f64 D 2) (*.f64 (cbrt.f64 d) (cbrt.f64 d))) (*.f64 (cbrt.f64 d) (cbrt.f64 d))) (/.f64 (/.f64 (*.f64 M (*.f64 h M)) (cbrt.f64 d)) (cbrt.f64 d))))
41.9b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 D) 2) (*.f64 (pow.f64 (sqrt.f64 D) 2) (*.f64 M (*.f64 h M)))) d) d))
26.4b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 D) (cbrt.f64 D)) 2) (*.f64 (pow.f64 (cbrt.f64 D) 2) (*.f64 M (*.f64 h M)))) d) d))
34.4b
(*.f64 1/4 (/.f64 (*.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) h) (pow.f64 d 2)))
31.3b
(*.f64 1/4 (/.f64 (/.f64 (pow.f64 D 2) 1) (*.f64 d (/.f64 d (*.f64 h (*.f64 M M))))))
27.9b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M)))) (cbrt.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))))) (cbrt.f64 (*.f64 (pow.f64 D 2) (*.f64 M (*.f64 h M))))) d) d))
56.6b
(*.f64 1/4 (exp.f64 (fma.f64 (log.f64 d) -2 (fma.f64 2 (log.f64 (*.f64 D M)) (log.f64 h)))))
61.5b
(*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (*.f64 (sqrt.f64 (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)) (sqrt.f64 (-.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) M)))))
26.9b
(*.f64 1/4 (/.f64 (/.f64 (*.f64 (*.f64 (pow.f64 D 2) M) (*.f64 h M)) d) d))
50.5b
(*.f64 1/4 (/.f64 (exp.f64 (fma.f64 2 (log.f64 (*.f64 D M)) (log.f64 (/.f64 h d)))) d))
Compiler

Compiled 5898 to 2497 computations (57.7% saved)

regimes1.7s (10.3%)

Accuracy

Total 9.7b remaining (34.9%)

Threshold costs 0b (0%)

Counts
138 → 1
Compiler

Compiled 57993 to 30325 computations (47.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01322
11822
21822

end1.0ms (0%)

Compiler

Compiled 21 to 14 computations (33.3% saved)

sample7.2s (42.6%)

Algorithm
intervals
Results
1.4s2156×body4096valid
1.2s11889×body128nan
921.0ms1169×body8192valid
694.0ms1225×body2048valid
511.0ms3946×body128invalid
272.0ms668×body1024valid
237.0ms2387×body128valid
72.0ms259×body512valid
27.0ms48×body2048invalid
25.0ms136×body256valid
22.0ms60×body1024invalid
9.0ms32×body512invalid
7.0ms12×body4096invalid
6.0msbody8192exit
4.0ms23×body256invalid
Compiler

Compiled 1000 to 543 computations (45.7% saved)

Profiling

Loading profile data...