Details

Time bar (total: 22.4s)

analyze2.6s (11.5%)

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)

sample200.0ms (0.9%)

Algorithm
intervals
Results
59.0ms256×body128valid
42.0ms271×body128nan
26.0ms157×body128invalid
Compiler

Compiled 86 to 68 computations (20.9% saved)

simplify44.0ms (0.2%)

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 → 1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02441
16241
218839
3107139
4361039
5510639

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
27.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
27.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 111 to 84 computations (24.3% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

6.4b
(*.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.6b
(pow.f64 (/.f64 d h) (/.f64 1 2))
11.9b
(pow.f64 (/.f64 d l) (/.f64 1 2))
14.3b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

rewrite469.0ms (2.1%)

Algorithm
rewrite-expression-head
Error
12.1b
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))))
13.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
6.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
5.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
Compiler

Compiled 9232 to 5880 computations (36.3% saved)

series346.0ms (1.5%)

Error
12.4b
Counts
4 → 51
Calls

4 calls:

165.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))))
99.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
31.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
29.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
Compiler

Compiled 3949 to 3004 computations (23.9% saved)

simplify208.0ms (0.9%)

Algorithm
egg-herbie
Rules
436×associate-*l*_binary64
433×fma-def_binary64
341×associate-*r*_binary64
271×unswap-sqr_binary64
230×sqr-pow_binary64
Counts
269 → 255
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04887919
110067308
234426988
350626988

prune178.0ms (0.8%)

Pruning

23 alts after pruning (23 fresh and 0 done)

PrunedKeptTotal
New23223255
Fresh000
Picked101
Done000
Total23323256
Error
10.4b
Counts
256 → 23
Alt Table
StatusErrorProgram
31.1b
(/.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (-.f64 1 (pow.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)) 3))) (+.f64 (*.f64 1 1) (+.f64 (*.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))))))
45.4b
(*.f64 (*.f64 (*.f64 (pow.f64 d 1/4) (sqrt.f64 (/.f64 (sqrt.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.4b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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))))
23.6b
(*.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))))
25.6b
(*.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 2 l))))
46.4b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1)) 3))
23.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 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
27.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))) (sqrt.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))))))
60.9b
(log.f64 (pow.f64 (pow.f64 (exp.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)))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
29.7b
(*.f64 (*.f64 (exp.f64 (log.f64 (sqrt.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))))
41.3b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))))
46.7b
(*.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)) (sqrt.f64 h)) (/.f64 (sqrt.f64 h) l))))
45.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 d 1/4) (sqrt.f64 (/.f64 (sqrt.f64 d) l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
26.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 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
40.4b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M))) (*.f64 l (*.f64 d d))) -1/8 1))
23.0b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.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))))
45.8b
(*.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))))
31.8b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (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 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1))))
27.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))))
44.0b
(*.f64 d (sqrt.f64 (/.f64 1 (*.f64 h l))))
34.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))))
41.4b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2))))
Compiler

Compiled 5985 to 3730 computations (37.7% saved)

localize30.0ms (0.1%)

Local error

Found 4 expressions with local error:

3.6b
(/.f64 (*.f64 M D) (*.f64 2 d))
6.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.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))))
11.9b
(pow.f64 (/.f64 d l) (/.f64 1 2))
14.3b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

rewrite348.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
8.7b
Rules
320×add-exp-log_binary64
171×prod-exp_binary64
96×div-exp_binary64
46×add-cbrt-cube_binary64
46×pow-exp_binary64
Counts
4 → 203
Calls

4 calls:

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

Compiled 9999 to 5801 computations (42% saved)

series426.0ms (1.9%)

Error
10.4b
Counts
4 → 52
Calls

4 calls:

247.0ms
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.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))))
100.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
31.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
30.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
Compiler

Compiled 5196 to 4017 computations (22.7% saved)

simplify169.0ms (0.8%)

Algorithm
egg-herbie
Rules
778×associate-*l*_binary64
623×associate-*r*_binary64
225×associate-/l*_binary64
213×times-frac_binary64
182×associate-*r/_binary64
Counts
255 → 242
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05379792
112518738
249598738

prune182.0ms (0.8%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New23012242
Fresh61622
Picked101
Done000
Total23728265
Error
8.9b
Counts
265 → 28
Alt Table
StatusErrorProgram
44.4b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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))))
23.6b
(*.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))))
44.4b
(/.f64 (*.f64 (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))) (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 d))) (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))))
31.8b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (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 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1))))
23.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (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)) (sqrt.f64 (/.f64 h l))) (sqrt.f64 (/.f64 h l)))))
46.4b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1)) 3))
23.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 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
37.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (fma.f64 -1 (log.f64 2) (fma.f64 2 (log.f64 (/.f64 (*.f64 D M) (*.f64 d 2))) (log.f64 (/.f64 h l)))))))
34.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))))
41.4b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2))))
27.9b
(*.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))) (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))))
18.5b
(*.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 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
41.0b
(*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (exp.f64 (*.f64 1/2 (+.f64 (log.f64 (/.f64 -1 l)) (log.f64 (neg.f64 d))))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))
23.8b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))))))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))))
23.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.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))))
41.3b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))))
46.7b
(*.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)) (sqrt.f64 h)) (/.f64 (sqrt.f64 h) l))))
23.4b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 M (/.f64 2 (/.f64 D d))) 2)) (/.f64 h l))))
45.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 d 1/4) (sqrt.f64 (/.f64 (sqrt.f64 d) l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
26.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 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
40.4b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M))) (*.f64 l (*.f64 d d))) -1/8 1))
23.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))) (*.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (sqrt.f64 (/.f64 d l)))) (fabs.f64 (cbrt.f64 h)))
31.1b
(/.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (-.f64 1 (pow.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)) 3))) (+.f64 (*.f64 1 1) (+.f64 (*.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))))))
60.9b
(log.f64 (pow.f64 (pow.f64 (exp.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)))
19.7b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.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))))
20.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (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))))
44.0b
(*.f64 d (sqrt.f64 (/.f64 1 (*.f64 h l))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
Compiler

Compiled 7122 to 4163 computations (41.5% saved)

localize39.0ms (0.2%)

Local error

Found 4 expressions with local error:

3.4b
(sqrt.f64 (/.f64 d (cbrt.f64 h)))
3.6b
(/.f64 (*.f64 M D) (*.f64 2 d))
6.4b
(*.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 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
14.3b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

rewrite399.0ms (1.8%)

Algorithm
rewrite-expression-head
Error
7.0b
Rules
305×add-exp-log_binary64
163×prod-exp_binary64
93×div-exp_binary64
82×frac-times_binary64
55×add-cbrt-cube_binary64
Counts
4 → 238
Calls

4 calls:

34.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 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
11.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
6.0ms
(sqrt.f64 (/.f64 d (cbrt.f64 h)))
5.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
Compiler

Compiled 14243 to 6391 computations (55.1% saved)

series534.0ms (2.4%)

Error
8.4b
Counts
4 → 54
Calls

4 calls:

343.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 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
96.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
32.0ms
(sqrt.f64 (/.f64 d (cbrt.f64 h)))
31.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
Compiler

Compiled 6958 to 5135 computations (26.2% saved)

simplify305.0ms (1.4%)

Algorithm
egg-herbie
Rules
290×*-commutative_binary64
269×distribute-rgt-in_binary64
268×distribute-lft-in_binary64
204×associate-/l*_binary64
196×associate-*r/_binary64
Counts
292 → 257
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
069815769
1177313467
2455913462
3497213462

prune212.0ms (0.9%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New2498257
Fresh52227
Picked101
Done000
Total25530285
Error
7.8b
Counts
285 → 30
Alt Table
StatusErrorProgram
32.3b
(*.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 (/.f64 1 2) (pow.f64 (cbrt.f64 (*.f64 (/.f64 (pow.f64 M 3) 8) (pow.f64 (/.f64 D d) 3))) 2)) (/.f64 h l))))
15.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 (*.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))))
18.7b
(*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3) (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))))))
44.4b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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))))
23.6b
(*.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))))
20.0b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3))) (fabs.f64 (cbrt.f64 h)))
52.3b
(*.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)))
46.4b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1)) 3))
23.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 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
43.4b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3) (sqrt.f64 d))) (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))))
60.9b
(log.f64 (pow.f64 (pow.f64 (exp.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)))
37.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (fma.f64 -1 (log.f64 2) (fma.f64 2 (log.f64 (/.f64 (*.f64 D M) (*.f64 d 2))) (log.f64 (/.f64 h l)))))))
43.0b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (sqrt.f64 d) (*.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)) (sqrt.f64 (cbrt.f64 d))))) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (sqrt.f64 (cbrt.f64 l))))
34.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))))
41.4b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2))))
41.0b
(*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (exp.f64 (*.f64 1/2 (+.f64 (log.f64 (/.f64 -1 l)) (log.f64 (neg.f64 d))))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))
42.6b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (sqrt.f64 d) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (cbrt.f64 d))))) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (*.f64 (fabs.f64 (cbrt.f64 l)) (sqrt.f64 (cbrt.f64 l)))))
23.8b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))))))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))))
23.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.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))))
41.3b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))))
46.7b
(*.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)) (sqrt.f64 h)) (/.f64 (sqrt.f64 h) l))))
45.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 d 1/4) (sqrt.f64 (/.f64 (sqrt.f64 d) l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
26.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 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
40.4b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M))) (*.f64 l (*.f64 d d))) -1/8 1))
23.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))) (*.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (sqrt.f64 (/.f64 d l)))) (fabs.f64 (cbrt.f64 h)))
31.8b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (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 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1))))
19.7b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.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))))
20.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (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))))
44.0b
(*.f64 d (sqrt.f64 (/.f64 1 (*.f64 h l))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
Compiler

Compiled 9333 to 4673 computations (49.9% saved)

localize40.0ms (0.2%)

Local error

Found 4 expressions with local error:

3.6b
(/.f64 (*.f64 D M) (*.f64 d 2))
4.2b
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h)))
6.4b
(*.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 (*.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))))
9.0b
(*.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))

rewrite399.0ms (1.8%)

Algorithm
rewrite-expression-head
Error
6.5b
Rules
291×add-exp-log_binary64
189×prod-exp_binary64
81×frac-times_binary64
70×add-cbrt-cube_binary64
51×cbrt-unprod_binary64
Counts
4 → 224
Calls

4 calls:

35.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 (*.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))))
18.0ms
(*.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))
10.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h)))
5.0ms
(/.f64 (*.f64 D M) (*.f64 d 2))
Compiler

Compiled 15390 to 5859 computations (61.9% saved)

series660.0ms (2.9%)

Error
7.8b
Counts
4 → 60
Calls

4 calls:

364.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 (*.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))))
116.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h)))
115.0ms
(*.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.0ms
(/.f64 (*.f64 D M) (*.f64 d 2))
Compiler

Compiled 7821 to 5622 computations (28.1% saved)

simplify408.0ms (1.8%)

Algorithm
egg-herbie
Rules
299×*-commutative_binary64
270×distribute-rgt-in_binary64
269×distribute-lft-in_binary64
251×times-frac_binary64
232×associate-*r/_binary64
Counts
284 → 266
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
066319666
1184714161
2466614147
3500014147
4496414147

prune193.0ms (0.9%)

Pruning

31 alts after pruning (31 fresh and 0 done)

PrunedKeptTotal
New2624266
Fresh22729
Picked101
Done000
Total26531296
Error
7.6b
Counts
296 → 31
Alt Table
StatusErrorProgram
18.7b
(*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3) (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))))))
44.4b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h))) (sqrt.f64 (/.f64 (sqrt.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))))
23.6b
(*.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))))
20.0b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3))) (fabs.f64 (cbrt.f64 h)))
52.3b
(*.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)))
46.4b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1)) 3))
23.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 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
43.4b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3) (sqrt.f64 d))) (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))))
60.9b
(log.f64 (pow.f64 (pow.f64 (exp.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)))
37.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (exp.f64 (fma.f64 -1 (log.f64 2) (fma.f64 2 (log.f64 (/.f64 (*.f64 D M) (*.f64 d 2))) (log.f64 (/.f64 h l)))))))
43.0b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (sqrt.f64 d) (*.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)) (sqrt.f64 (cbrt.f64 d))))) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (sqrt.f64 (cbrt.f64 l))))
15.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 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 h) (cbrt.f64 h)) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 h) (cbrt.f64 h)) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 h) (cbrt.f64 h)) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2))))) (/.f64 (cbrt.f64 h) l))))
34.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))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
15.9b
(*.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (-.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))))
41.4b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (pow.f64 (neg.f64 d) 1/2) (pow.f64 (/.f64 -1 h) 1/2))))
41.0b
(*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (exp.f64 (*.f64 1/2 (+.f64 (log.f64 (/.f64 -1 l)) (log.f64 (neg.f64 d))))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))
42.6b
(/.f64 (*.f64 (-.f64 1 (*.f64 (/.f64 h l) (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)))) (*.f64 (sqrt.f64 d) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (cbrt.f64 d))))) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (*.f64 (fabs.f64 (cbrt.f64 l)) (sqrt.f64 (cbrt.f64 l)))))
23.8b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))))))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (fabs.f64 (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 d l)) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l)))))))
23.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.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))))
41.3b
(*.f64 (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1) (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (pow.f64 (/.f64 -1 l) 1/2) (pow.f64 (neg.f64 d) 1/2))))
15.7b
(*.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 (*.f64 1/2 (pow.f64 (/.f64 D (/.f64 d (/.f64 M 2))) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
40.4b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 h (*.f64 M M))) (*.f64 l (*.f64 d d))) -1/8 1))
23.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (/.f64 h l))) (*.f64 (sqrt.f64 (/.f64 d (cbrt.f64 h))) (sqrt.f64 (/.f64 d l)))) (fabs.f64 (cbrt.f64 h)))
32.3b
(*.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 (/.f64 1 2) (pow.f64 (cbrt.f64 (*.f64 (/.f64 (pow.f64 M 3) 8) (pow.f64 (/.f64 D d) 3))) 2)) (/.f64 h l))))
31.8b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (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 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 -1/2 (*.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2) (/.f64 h l)) 1))))
19.7b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (*.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))))
20.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 1 (cbrt.f64 h))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (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))))
44.0b
(*.f64 d (sqrt.f64 (/.f64 1 (*.f64 h l))))
15.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 (*.f64 1/2 (pow.f64 (*.f64 (*.f64 D M) (/.f64 1/2 d)) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
45.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 d 1/4) (sqrt.f64 (/.f64 (sqrt.f64 d) l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
Compiler

Compiled 8651 to 3885 computations (55.1% saved)

regimes8.0s (35.8%)

Accuracy

Total 4.0b remaining (30.6%)

Threshold costs 0b (0%)

Compiler

Compiled 175079 to 125177 computations (28.5% saved)

bsearch44.0ms (0.2%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

simplify13.0ms (0.1%)

Algorithm
egg-herbie
Rules
25×*-commutative_binary64
13×+-commutative_binary64
11×sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078327
1107327
2130327
3144327
4153327
5155327
6151327

end17.0ms (0.1%)

Remove

(sort M D)

Compiler

Compiled 630 to 345 computations (45.2% saved)

sample5.9s (26.4%)

Algorithm
intervals
Results
1.5s8000×body128valid
1.4s8643×body128nan
978.0ms4937×body128invalid
Compiler

Compiled 1671 to 1117 computations (33.2% saved)

Profiling

Loading profile data...