Details

Time bar (total: 24.1s)

analyze2.3s (9.4%)

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)

sample242.0ms (1%)

Algorithm
intervals
Symmetry

(sort M D)

Results
82.0ms256×body128valid
45.0ms272×body128nan
25.0ms144×body128invalid
Compiler

Compiled 86 to 68 computations (20.9% saved)

simplify35.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
30.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
30.2b
(*.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
8.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 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
11.3b
(pow.f64 (/.f64 d h) (/.f64 1 2))
12.7b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
13.8b
(pow.f64 (/.f64 d l) (/.f64 1 2))

series1.4s (5.9%)

Counts
4 → 144
Calls

4 calls:

466.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
437.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
261.0ms
(*.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))))
256.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

rewrite67.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
331×add-exp-log_binary64
179×prod-exp_binary64
99×div-exp_binary64
60×pow-exp_binary64
45×times-frac_binary64
Counts
4 → 218
Calls

4 calls:

16.0ms
(*.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))))
12.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
5.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
4.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))

simplify227.0ms (0.9%)

Algorithm
egg-herbie
Rules
544×times-frac_binary64
404×associate-*l*_binary64
378×fma-def_binary64
312×associate-*r*_binary64
189×*-commutative_binary64
Counts
362 → 321
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04459420
18988689
230218543
349748543
449528543

prune493.0ms (2%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New30021321
Fresh000
Picked101
Done000
Total30121322
Error
12.6b
Counts
322 → 21
Alt Table
StatusErrorProgram
26.2b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 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))))
44.8b
(*.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))))
32.0b
(/.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (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 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
30.3b
(*.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 d h)) (/.f64 1 2)) (pow.f64 (sqrt.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))))
44.5b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
30.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d h))) (sqrt.f64 (cbrt.f64 (/.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))))
28.6b
(*.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))))
25.8b
(*.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))))
45.5b
(*.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))))
24.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
27.8b
(*.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 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
30.3b
(*.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))))
45.1b
(*.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))))))
41.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)) (log.f64 (/.f64 h l))))))
52.4b
(*.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))))))
28.1b
(*.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 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 h (cbrt.f64 l)))))
36.5b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 d h))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1))) (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 d h))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1))))
27.0b
(*.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))))
43.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.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))))
60.0b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
43.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (pow.f64 d 1/4) (cbrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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 15837 to 10010 computations (36.8% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.9b
(/.f64 (*.f64 M D) (*.f64 2 d))
8.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
11.3b
(pow.f64 (/.f64 d h) (/.f64 1 2))
12.7b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

series1.1s (4.4%)

Counts
2 → 84
Calls

2 calls:

1.0s
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
18.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))

rewrite41.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
44×add-exp-log_binary64
25×prod-exp_binary64
23×add-cbrt-cube_binary64
14×associate-*r/_binary64
10×cbrt-unprod_binary64
Counts
2 → 71
Calls

2 calls:

25.0ms
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
4.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))

simplify195.0ms (0.8%)

Algorithm
egg-herbie
Rules
944×fma-def_binary64
582×associate-*l*_binary64
529×associate-*r*_binary64
270×*-commutative_binary64
144×times-frac_binary64
Counts
155 → 123
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02888544
17897278
234417002
348897002
451057002

prune462.0ms (1.9%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New29713310
Fresh31720
Picked101
Done000
Total30130331
Error
10.3b
Counts
331 → 30
Alt Table
StatusErrorProgram
26.2b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 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))))
44.8b
(*.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))))
24.5b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))
32.0b
(/.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (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 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
37.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 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))))))
52.5b
(*.f64 (pow.f64 (/.f64 -1 l) 1/6) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 (/.f64 (neg.f64 d) l)) (cbrt.f64 -1))) (*.f64 (cbrt.f64 (*.f64 d d)) (sqrt.f64 (/.f64 1 (*.f64 h (cbrt.f64 -1)))))))
50.2b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (-.f64 (log.f64 (*.f64 M D)) (log.f64 (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
27.0b
(*.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))))
30.3b
(*.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 d h)) (/.f64 1 2)) (pow.f64 (sqrt.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))))
44.5b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
53.0b
(*.f64 (pow.f64 (/.f64 1 l) 1/6) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (fabs.f64 (pow.f64 (/.f64 d l) 1/3)) (sqrt.f64 (/.f64 1 h)))))
43.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.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))))
63.5b
(*.f64 -1/8 (*.f64 (*.f64 (pow.f64 D 2) (*.f64 (fabs.f64 (pow.f64 (/.f64 d l) 1/3)) (pow.f64 M 2))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 d 4)) 1/3) (*.f64 (pow.f64 (/.f64 1 (pow.f64 l 7)) 1/6) (sqrt.f64 h)))))
30.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d h))) (sqrt.f64 (cbrt.f64 (/.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))))
28.6b
(*.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))))
42.6b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
25.8b
(*.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))))
45.5b
(*.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))))
31.2b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1))) (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1))))
24.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d h))) (sqrt.f64 (cbrt.f64 (/.f64 d h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
24.4b
(/.f64 (*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (fabs.f64 (cbrt.f64 d))))) (fabs.f64 (cbrt.f64 l)))
21.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
45.1b
(*.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))))))
41.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)) (log.f64 (/.f64 h l))))))
40.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 (pow.f64 d 2) l)))))
28.1b
(*.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 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 h (cbrt.f64 l)))))
60.0b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
43.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (pow.f64 d 1/4) (cbrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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))))
27.8b
(*.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 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
24.5b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) 1/4) (pow.f64 (/.f64 d h) 1/4)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.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))))
Compiler

Compiled 18752 to 9645 computations (48.6% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.7b
(*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))
6.3b
(*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))
8.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
11.3b
(pow.f64 (/.f64 d h) (/.f64 1 2))

series1.6s (6.8%)

Counts
3 → 156
Calls

3 calls:

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

rewrite77.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
223×add-exp-log_binary64
144×prod-exp_binary64
40×div-exp_binary64
35×add-cbrt-cube_binary64
29×pow-exp_binary64
Counts
3 → 153
Calls

3 calls:

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

simplify274.0ms (1.1%)

Algorithm
egg-herbie
Rules
731×associate-*l*_binary64
716×fma-def_binary64
662×associate-*r*_binary64
340×*-commutative_binary64
117×log-prod_binary64
Counts
309 → 230
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
040112772
193410997
2380010930
3498510930
4495010930

prune506.0ms (2.1%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New29410304
Fresh92029
Picked101
Done000
Total30430334
Error
9.7b
Counts
334 → 30
Alt Table
StatusErrorProgram
26.2b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d)) (*.f64 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 1 2)) (pow.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 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))))
44.8b
(*.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))))
24.5b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))
32.0b
(/.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (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 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
28.1b
(*.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 (cbrt.f64 l) (cbrt.f64 l))) (/.f64 h (cbrt.f64 l)))))
19.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 (*.f64 h (*.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 2 d))))) (pow.f64 (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 d 2))) 2))) (/.f64 1 l))))
37.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 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))))))
21.8b
(*.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d h))) (cbrt.f64 (sqrt.f64 (/.f64 d h)))) (cbrt.f64 (sqrt.f64 (/.f64 d h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
50.2b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (-.f64 (log.f64 (*.f64 M D)) (log.f64 (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
17.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
27.0b
(*.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))))
44.5b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
30.8b
(/.f64 (*.f64 (-.f64 1 (/.f64 (/.f64 (*.f64 1/4 (*.f64 h (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 4) h))) l) l)) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (fabs.f64 (cbrt.f64 d))))) (*.f64 (fabs.f64 (cbrt.f64 l)) (fma.f64 1/2 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2)) l) 1)))
53.0b
(*.f64 (pow.f64 (/.f64 1 l) 1/6) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (fabs.f64 (pow.f64 (/.f64 d l) 1/3)) (sqrt.f64 (/.f64 1 h)))))
43.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.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))))
63.5b
(*.f64 -1/8 (*.f64 (*.f64 (pow.f64 D 2) (*.f64 (fabs.f64 (pow.f64 (/.f64 d l) 1/3)) (pow.f64 M 2))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 d 4)) 1/3) (*.f64 (pow.f64 (/.f64 1 (pow.f64 l 7)) 1/6) (sqrt.f64 h)))))
39.8b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
22.6b
(*.f64 (*.f64 (expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 d h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
30.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d h))) (sqrt.f64 (cbrt.f64 (/.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))))
19.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 (*.f64 h (/.f64 (*.f64 D M) (*.f64 d 2))) (/.f64 (*.f64 D M) (*.f64 d 2)))) (/.f64 1 l))))
25.8b
(*.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))))
45.5b
(*.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))))
21.6b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (*.f64 (cbrt.f64 (fma.f64 -1/2 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2)) l) 1)) (cbrt.f64 (fma.f64 -1/2 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2)) l) 1)))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l)))))
31.2b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1))) (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1))))
31.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) (pow.f64 (/.f64 1 (*.f64 d 2)) 2))) (/.f64 1 l))))
27.8b
(*.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 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
60.0b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
43.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (pow.f64 d 1/4) (cbrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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))))
21.6b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) 1/4) (pow.f64 (/.f64 d h) 1/4)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
41.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)) (log.f64 (/.f64 h l))))))
Compiler

Compiled 18911 to 10212 computations (46% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.9b
(/.f64 (*.f64 D M) (*.f64 d 2))
5.7b
(*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))
6.3b
(*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))
8.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))

series1.2s (5.1%)

Counts
2 → 92
Calls

2 calls:

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

rewrite65.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
81×frac-times_binary64
48×associate-*l/_binary64
48×fabs-div_binary64
48×sqrt-div_binary64
35×associate-*r/_binary64
Counts
2 → 109
Calls

2 calls:

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

simplify308.0ms (1.3%)

Algorithm
egg-herbie
Rules
657×*-commutative_binary64
257×distribute-rgt-in_binary64
256×distribute-lft-in_binary64
163×times-frac_binary64
144×associate-*l*_binary64
Counts
201 → 201
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
045415361
1138412601
2356512217
3484212217
4495812217

prune551.0ms (2.3%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New3405345
Fresh52429
Picked101
Done000
Total34629375
Error
9.5b
Counts
375 → 29
Alt Table
StatusErrorProgram
44.8b
(*.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))))
24.5b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l)))))
32.0b
(/.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (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 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
37.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 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))))))
21.8b
(*.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d h))) (cbrt.f64 (sqrt.f64 (/.f64 d h)))) (cbrt.f64 (sqrt.f64 (/.f64 d h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
50.2b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (exp.f64 (+.f64 (+.f64 (neg.f64 (log.f64 2)) (*.f64 (-.f64 (log.f64 (*.f64 M D)) (log.f64 (*.f64 2 d))) 2)) (-.f64 (log.f64 h) (log.f64 l))))))
27.0b
(*.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))))
44.5b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
30.8b
(/.f64 (*.f64 (-.f64 1 (/.f64 (/.f64 (*.f64 1/4 (*.f64 h (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 4) h))) l) l)) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (fabs.f64 (cbrt.f64 d))))) (*.f64 (fabs.f64 (cbrt.f64 l)) (fma.f64 1/2 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2)) l) 1)))
43.3b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.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))))
63.5b
(*.f64 -1/8 (*.f64 (*.f64 (pow.f64 D 2) (*.f64 (fabs.f64 (pow.f64 (/.f64 d l) 1/3)) (pow.f64 M 2))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 d 4)) 1/3) (*.f64 (pow.f64 (/.f64 1 (pow.f64 l 7)) 1/6) (sqrt.f64 h)))))
39.8b
(*.f64 (*.f64 (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
30.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d h))) (sqrt.f64 (cbrt.f64 (/.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))))
52.4b
(*.f64 (*.f64 (cbrt.f64 (/.f64 1 h)) (cbrt.f64 (/.f64 d l))) (*.f64 (cbrt.f64 (*.f64 d d)) (pow.f64 (/.f64 1 (*.f64 h l)) 1/6)))
60.0b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
18.7b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 1) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l)))) (fabs.f64 (cbrt.f64 h)))
53.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 1 h)) (*.f64 (pow.f64 (exp.f64 1/6) (-.f64 (neg.f64 (log.f64 l)) (log.f64 h))) (cbrt.f64 (/.f64 d l)))) (cbrt.f64 (*.f64 d d)))
25.8b
(*.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))))
45.5b
(*.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))))
21.6b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (*.f64 (cbrt.f64 (fma.f64 -1/2 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2)) l) 1)) (cbrt.f64 (fma.f64 -1/2 (/.f64 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2)) l) 1)))) (cbrt.f64 (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l)))))
31.2b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1))) (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (/.f64 h l)) 1))))
21.6b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) 1/4) (pow.f64 (/.f64 d h) 1/4)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))
14.8b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 (*.f64 h (/.f64 (*.f64 D M) (*.f64 2 d))) (/.f64 (*.f64 D M) (*.f64 d 2)))) (/.f64 1 l))))
31.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 (*.f64 h (pow.f64 (*.f64 D M) 2)) (pow.f64 (/.f64 1 (*.f64 d 2)) 2))) (/.f64 1 l))))
27.8b
(*.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 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
24.8b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))) (sqrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 h (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))) (/.f64 1 l))))))
41.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)) (log.f64 (/.f64 h l))))))
19.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (*.f64 (*.f64 h (*.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 2 d))))) (pow.f64 (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 d 2))) 2))) (/.f64 1 l))))
43.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (pow.f64 d 1/4) (cbrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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 22622 to 11344 computations (49.9% saved)

regimes7.1s (29.6%)

Accuracy

Total 2.8b remaining (25.2%)

Threshold costs 0b (0%)

Counts
460 → 3
Compiler

Compiled 168507 to 118896 computations (29.4% saved)

bsearch35.0ms (0.1%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Rules
37×*-commutative_binary64
17×sub-neg_binary64
16×+-commutative_binary64
14×distribute-rgt-neg-in_binary64
14×neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068320
199320
2128320
3154320
4178320
5196320
6205320
7210320
8212320
9205320

end13.0ms (0.1%)

Remove

(sort M D)

Compiler

Compiled 630 to 336 computations (46.7% saved)

sample5.6s (23.4%)

Algorithm
intervals
Results
1.5s8523×body128nan
1.4s8000×body128valid
877.0ms4778×body128invalid
Compiler

Compiled 1732 to 1178 computations (32% saved)

Profiling

Loading profile data...