Details

Time bar (total: 24.6s)

analyze2.2s (9.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%81.1%18.9%7
0%68.6%31.4%8
0%59.2%40.8%9
0%59.2%40.8%10
0%59.2%40.8%11
0.4%49.5%50.1%12
0.8%44.4%54.8%13
1.4%39.9%58.7%14
Compiler

Compiled 41 to 32 computations (22% saved)

sample5.7s (23.3%)

Symmetry

(sort M D)

Results
3.5s13815×body128invalid
2.2s8256×body128valid
Compiler

Compiled 122 to 95 computations (22.1% saved)

simplify33.0ms (0.1%)

Algorithm
egg-herbie
Rules
466×fma-def_binary64
437×*-commutative_binary64
425×associate-/l*_binary64
347×cancel-sign-sub-inv_binary64
263×associate-/l/_binary64
Counts
1 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02441
16241
218839
3107139
4361039
5510639

prune5.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
21.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
21.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
Compiler

Compiled 146 to 106 computations (27.4% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.8b
(/.f64 (*.f64 M D) (*.f64 2 d))
8.1b
(pow.f64 (/.f64 d h) (/.f64 1 2))
10.7b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
11.7b
(pow.f64 (/.f64 d l) (/.f64 1 2))

series1.1s (4.3%)

Counts
4 → 144
Calls

4 calls:

412.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
403.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
233.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
14.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))

rewrite51.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
293×add-exp-log_binary64
150×prod-exp_binary64
95×div-exp_binary64
46×times-frac_binary64
44×pow-exp_binary64
Counts
4 → 195
Calls

4 calls:

11.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
4.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
4.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
4.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))

simplify176.0ms (0.7%)

Algorithm
egg-herbie
Rules
503×associate-/l/_binary64
260×associate-*l*_binary64
216×sqr-pow_binary64
206×fma-def_binary64
193×times-frac_binary64
Counts
339 → 297
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03946447
18125872
227885769
348345769
449625769

prune837.0ms (3.4%)

Pruning

23 alts after pruning (23 fresh and 0 done)

PrunedKeptTotal
New27423297
Fresh000
Picked101
Done000
Total27523298
Error
9.7b
Counts
298 → 23
Alt Table
StatusErrorProgram
40.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 (*.f64 (cbrt.f64 h) (cbrt.f64 h)) (sqrt.f64 l))) (/.f64 (cbrt.f64 h) (sqrt.f64 l)))))
41.3b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
30.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (log.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 h l)))))
39.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (sqrt.f64 h))) (sqrt.f64 (/.f64 d (sqrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 (sqrt.f64 d) (*.f64 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 1 2)) (pow.f64 (/.f64 (sqrt.f64 d) (cbrt.f64 l)) (/.f64 1 2)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
28.7b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 d h) 3/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 d) (sqrt.f64 (/.f64 1 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (sqrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (sqrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))
22.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 l 2))))
50.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
18.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)) (/.f64 1 2)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
22.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
39.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 1 (sqrt.f64 l))) (sqrt.f64 (/.f64 d (sqrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) h))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
36.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (log.f64 (/.f64 h l))))))
21.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 M (/.f64 (*.f64 2 d) D)) 2)) (/.f64 h l))))
17.0b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
Compiler

Compiled 14328 to 9207 computations (35.7% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.3b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
4.8b
(/.f64 (*.f64 M D) (*.f64 2 d))
10.7b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
11.7b
(pow.f64 (/.f64 d l) (/.f64 1 2))

series1.2s (4.7%)

Counts
1 → 48
Calls

1 calls:

1.2s
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))

rewrite36.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
31×add-exp-log_binary64
21×prod-exp_binary64
15×associate-*l/_binary64
10×add-cbrt-cube_binary64
frac-times_binary64
Counts
1 → 48
Calls

1 calls:

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

simplify182.0ms (0.7%)

Algorithm
egg-herbie
Rules
628×fma-def_binary64
539×associate-*l*_binary64
496×associate-*r*_binary64
255×distribute-rgt-neg-in_binary64
246×*-commutative_binary64
Counts
96 → 91
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02527976
16736779
226976496
347746496
450106496

prune586.0ms (2.4%)

Pruning

27 alts after pruning (27 fresh and 0 done)

PrunedKeptTotal
New3059314
Fresh41822
Picked101
Done000
Total31027337
Error
8.4b
Counts
337 → 27
Alt Table
StatusErrorProgram
40.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 (*.f64 (cbrt.f64 h) (cbrt.f64 h)) (sqrt.f64 l))) (/.f64 (cbrt.f64 h) (sqrt.f64 l)))))
41.3b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
17.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
58.9b
(log.f64 (pow.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1)))
28.7b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 d h) 3/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 d) (sqrt.f64 (/.f64 1 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (sqrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (sqrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))
49.4b
(*.f64 (*.f64 (sqrt.f64 (neg.f64 (/.f64 (cbrt.f64 -1) l))) (fabs.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 (/.f64 (neg.f64 d) h))))) (*.f64 (cbrt.f64 (*.f64 d d)) (pow.f64 (/.f64 1 h) 1/6)))
42.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
26.3b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (log.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 h l)))))
36.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (log.f64 (/.f64 h l))))))
63.6b
(*.f64 -1/8 (*.f64 (pow.f64 (neg.f64 (pow.f64 h 5)) 1/6) (*.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) (fabs.f64 (/.f64 (cbrt.f64 (/.f64 (neg.f64 d) h)) (cbrt.f64 -1))))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 d 4))) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 l 3) (cbrt.f64 -1))))))))
19.7b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 (*.f64 1 1) (*.f64 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)) (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))) (*.f64 (fabs.f64 (cbrt.f64 h)) (+.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))
22.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 l 2))))
50.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
18.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)) (/.f64 1 2)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
17.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 1 (sqrt.f64 l))) (sqrt.f64 (/.f64 d (sqrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) h))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (sqrt.f64 h))) (sqrt.f64 (/.f64 d (sqrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
49.8b
(*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (pow.f64 (/.f64 1 h) 1/6) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
21.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 M (/.f64 (*.f64 2 d) D)) 2)) (/.f64 h l))))
23.1b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))) (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))))
Compiler

Compiled 18723 to 9661 computations (48.4% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.3b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
4.8b
(/.f64 (*.f64 M D) (*.f64 2 d))
10.7b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
12.4b
(cbrt.f64 (/.f64 d l))

series1.8s (7.2%)

Counts
2 → 84
Calls

2 calls:

1.3s
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
434.0ms
(cbrt.f64 (/.f64 d l))

rewrite156.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
81×frac-times_binary64
49×cbrt-div_binary64
48×associate-*l/_binary64
48×fabs-div_binary64
48×sqrt-div_binary64
Counts
2 → 110
Calls

2 calls:

34.0ms
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
2.0ms
(cbrt.f64 (/.f64 d l))

simplify303.0ms (1.2%)

Algorithm
egg-herbie
Rules
957×fma-def_binary64
687×*-commutative_binary64
263×distribute-rgt-in_binary64
261×distribute-lft-in_binary64
160×times-frac_binary64
Counts
194 → 217
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
050915263
1141112782
2312011808
3484611804
4492311804

prune622.0ms (2.5%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New3977404
Fresh42226
Picked101
Done000
Total40229431
Error
8.3b
Counts
431 → 29
Alt Table
StatusErrorProgram
40.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 (*.f64 (cbrt.f64 h) (cbrt.f64 h)) (sqrt.f64 l))) (/.f64 (cbrt.f64 h) (sqrt.f64 l)))))
41.3b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
17.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
26.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (log.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 h l)))))
17.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
58.9b
(log.f64 (pow.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1)))
28.7b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 d h) 3/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
49.8b
(*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (pow.f64 (/.f64 1 h) 1/6) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
38.2b
(/.f64 (*.f64 d (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1)) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (*.f64 (fabs.f64 (cbrt.f64 l)) (sqrt.f64 (cbrt.f64 l)))))
39.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 d) (sqrt.f64 (/.f64 1 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (sqrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (sqrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))
49.4b
(*.f64 (*.f64 (sqrt.f64 (neg.f64 (/.f64 (cbrt.f64 -1) l))) (fabs.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 (/.f64 (neg.f64 d) h))))) (*.f64 (cbrt.f64 (*.f64 d d)) (pow.f64 (/.f64 1 h) 1/6)))
42.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 d 2/3) (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (cbrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
36.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (log.f64 (/.f64 h l))))))
63.6b
(*.f64 -1/8 (*.f64 (pow.f64 (neg.f64 (pow.f64 h 5)) 1/6) (*.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) (fabs.f64 (/.f64 (cbrt.f64 (/.f64 (neg.f64 d) h)) (cbrt.f64 -1))))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 d 4))) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 l 3) (cbrt.f64 -1))))))))
46.8b
(*.f64 (cbrt.f64 d) (*.f64 (pow.f64 (/.f64 1 (*.f64 l h)) 1/6) (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h)))))
19.7b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 (*.f64 1 1) (*.f64 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)) (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))) (*.f64 (fabs.f64 (cbrt.f64 h)) (+.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))
22.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 l 2))))
18.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)) (/.f64 1 2)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 M (/.f64 (*.f64 2 d) D)) 2)) (/.f64 h l))))
49.6b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
17.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (sqrt.f64 h))) (sqrt.f64 (/.f64 d (sqrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) h))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
23.1b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))) (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))))
Compiler

Compiled 26695 to 11642 computations (56.4% saved)

localize32.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.3b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
4.8b
(/.f64 (*.f64 M D) (*.f64 2 d))
10.7b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
12.4b
(cbrt.f64 (/.f64 d l))

series1.1s (4.6%)

Counts
1 → 60
Calls

1 calls:

1.1s
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))

rewrite250.0ms (1%)

Algorithm
rewrite-expression-head
Rules
672×cbrt-div_binary64
513×frac-times_binary64
264×sqrt-div_binary64
252×associate-*l/_binary64
251×associate-*r/_binary64
Counts
1 → 230
Calls

1 calls:

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

simplify645.0ms (2.6%)

Algorithm
egg-herbie
Rules
517×distribute-rgt-in_binary64
516×distribute-lft-in_binary64
508×*-commutative_binary64
365×associate-*l*_binary64
183×associate-*r*_binary64
Counts
290 → 376
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
071733056
1185229250
2444128896
3495528896
4501828896

prune1.2s (4.7%)

Pruning

31 alts after pruning (31 fresh and 0 done)

PrunedKeptTotal
New6707677
Fresh42428
Picked101
Done000
Total67531706
Error
8.3b
Counts
706 → 31
Alt Table
StatusErrorProgram
26.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (log.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 h l)))))
46.8b
(*.f64 (pow.f64 (/.f64 1 (*.f64 l h)) 1/6) (*.f64 (cbrt.f64 d) (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h)))))
41.3b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
17.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
58.9b
(log.f64 (pow.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1)))
28.7b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 d h) 3/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
49.8b
(*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (pow.f64 (/.f64 1 h) 1/6) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
38.2b
(/.f64 (*.f64 d (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1)) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (*.f64 (fabs.f64 (cbrt.f64 l)) (sqrt.f64 (cbrt.f64 l)))))
40.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))
17.8b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (pow.f64 (/.f64 d l) 1/3)))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 d) (sqrt.f64 (/.f64 1 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
39.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (sqrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (sqrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
49.4b
(*.f64 (*.f64 (sqrt.f64 (neg.f64 (/.f64 (cbrt.f64 -1) l))) (fabs.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 (/.f64 (neg.f64 d) h))))) (*.f64 (cbrt.f64 (*.f64 d d)) (pow.f64 (/.f64 1 h) 1/6)))
42.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
19.0b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 d l) 2/3)) (cbrt.f64 (cbrt.f64 (/.f64 d l))))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
36.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (log.f64 (/.f64 h l))))))
63.6b
(*.f64 -1/8 (*.f64 (pow.f64 (neg.f64 (pow.f64 h 5)) 1/6) (*.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) (fabs.f64 (/.f64 (cbrt.f64 (/.f64 (neg.f64 d) h)) (cbrt.f64 -1))))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 d 4))) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 l 3) (cbrt.f64 -1))))))))
19.7b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 (*.f64 1 1) (*.f64 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)) (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))) (*.f64 (fabs.f64 (cbrt.f64 h)) (+.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))
22.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 l 2))))
18.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)) (/.f64 1 2)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
17.0b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 M (/.f64 2 (/.f64 D d))) 2)) (/.f64 h l))))
49.6b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
17.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 M (/.f64 (*.f64 2 d) D)) 2)) (/.f64 h l))))
33.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 d l))) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 (/.f64 d l))))))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (log.f64 (/.f64 (*.f64 M D) (*.f64 2 d))) 2)) (log.f64 (/.f64 h l))))))
17.5b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 d)) (cbrt.f64 (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (cbrt.f64 d)))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))) (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (*.f64 (cbrt.f64 (cbrt.f64 l)) (cbrt.f64 (cbrt.f64 l))))))
23.1b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))) (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))))
39.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (sqrt.f64 h))) (sqrt.f64 (/.f64 d (sqrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
21.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
18.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) h))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
Compiler

Compiled 53440 to 19601 computations (63.3% saved)

regimes5.5s (22.2%)

Accuracy

Total 5.2b remaining (31.4%)

Threshold costs 0b (0%)

Counts
393 → 2
Compiler

Compiled 144125 to 98873 computations (31.4% saved)

bsearch36.0ms (0.1%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

simplify10.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
061168
195168
2119168
3135168
4145168
5149168
6150168
7147168

end860.0ms (3.5%)

Remove

(sort M D)

Compiler

Compiled 2001 to 1372 computations (31.4% saved)

Profiling

Loading profile data...