Details

Time bar (total: 22.0s)

analyze2.6s (11.8%)

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)

sample183.0ms (0.8%)

Algorithm
intervals
Results
46.0ms256×body128valid
45.0ms271×body128nan
26.0ms157×body128invalid
Compiler

Compiled 86 to 68 computations (20.9% saved)

simplify40.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)

localize29.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))

rewrite500.0ms (2.3%)

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:

17.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))
5.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
5.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
Compiler

Compiled 9232 to 5880 computations (36.3% saved)

series347.0ms (1.6%)

Error
12.4b
Counts
4 → 51
Calls

4 calls:

164.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))))
95.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
33.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
32.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
Compiler

Compiled 3949 to 3004 computations (23.9% saved)

simplify207.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

prune237.0ms (1.1%)

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
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))))
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))))
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))
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))))
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))))
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))))
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)))
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))))))
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))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
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))))
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))))
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)

localize32.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))

rewrite351.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))
9.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
5.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
Compiler

Compiled 9999 to 5801 computations (42% saved)

series465.0ms (2.1%)

Error
10.4b
Counts
4 → 52
Calls

4 calls:

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

Compiled 5196 to 4017 computations (22.7% saved)

simplify172.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

prune191.0ms (0.9%)

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
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))))
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)))))))
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))
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))))))
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)))))))
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)))))
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))))
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.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))))
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)))
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))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
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)))
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))))
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))))
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))))
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))))
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))))
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))))
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))))
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))))
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))))
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))))
Compiler

Compiled 7122 to 4163 computations (41.5% saved)

localize34.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))

rewrite401.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:

40.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))
5.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
3.0ms
(sqrt.f64 (/.f64 d (cbrt.f64 h)))
Compiler

Compiled 14243 to 6391 computations (55.1% saved)

series542.0ms (2.5%)

Error
8.4b
Counts
4 → 54
Calls

4 calls:

341.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))))
104.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
33.0ms
(sqrt.f64 (/.f64 d (cbrt.f64 h)))
28.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
Compiler

Compiled 6958 to 5135 computations (26.2% saved)

simplify316.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

prune214.0ms (1%)

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
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))))
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)))))))
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))
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))))
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))))
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)))))
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.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 (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))))
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))))
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))
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)))
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))))
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)))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
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)))
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))))
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))))
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))))
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))))
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))))
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)))
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))))
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)))
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))))
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 9333 to 4673 computations (49.9% saved)

localize41.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))

rewrite402.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:

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 D M) (*.f64 d 2)) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h))) (/.f64 (cbrt.f64 h) l))))
19.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))
11.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)

series644.0ms (2.9%)

Error
7.8b
Counts
4 → 60
Calls

4 calls:

352.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))))
121.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 D M) (*.f64 d 2)) 2)) (*.f64 (cbrt.f64 h) (cbrt.f64 h)))
107.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))
29.0ms
(/.f64 (*.f64 D M) (*.f64 d 2))
Compiler

Compiled 7821 to 5622 computations (28.1% saved)

simplify409.0ms (1.9%)

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

prune191.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
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))))
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))))
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))))
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)))))))
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))
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))))
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))))
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)))))
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.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)))))))
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))
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)))
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))))
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))))
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)))))
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))))
60.1b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 M M)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
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)))
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))))
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.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))))
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))))
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)))
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))))
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)))
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))))
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))))
Compiler

Compiled 8651 to 3885 computations (55.1% saved)

regimes7.6s (34.5%)

Accuracy

Total 4.0b remaining (30.6%)

Threshold costs 0b (0%)

Compiler

Compiled 175079 to 125177 computations (28.5% saved)

bsearch43.0ms (0.2%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

simplify17.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

end18.0ms (0.1%)

Remove

(sort M D)

Compiler

Compiled 630 to 345 computations (45.2% saved)

sample5.8s (26.2%)

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

Compiled 1671 to 1117 computations (33.2% saved)

Profiling

Loading profile data...