Details

Time bar (total: 21.6s)

analyze4.0s (18.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)

sample225.0ms (1%)

Algorithm
intervals
Symmetry

(sort M D)

Results
49.0ms256×body128valid
41.0ms269×body128nan
38.0ms178×body128invalid
Compiler

Compiled 86 to 68 computations (20.9% saved)

simplify36.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 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02441
16241
218839
3107139
4361039
5510639

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
24.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
24.0b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
Compiler

Compiled 128 to 88 computations (31.3% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.9b
(/.f64 (*.f64 M D) (*.f64 d 2))
7.3b
(fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)
9.3b
(sqrt.f64 (/.f64 d l))
12.2b
(sqrt.f64 (/.f64 d h))

series137.0ms (0.6%)

Counts
4 → 96
Calls

4 calls:

84.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)
18.0ms
(sqrt.f64 (/.f64 d h))
17.0ms
(sqrt.f64 (/.f64 d l))
17.0ms
(/.f64 (*.f64 M D) (*.f64 d 2))

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
26×sqrt-prod_binary64
24×add-sqr-sqrt_binary64
21×times-frac_binary64
18×*-un-lft-identity_binary64
18×add-cube-cbrt_binary64
Counts
4 → 87
Calls

4 calls:

4.0ms
(/.f64 (*.f64 M D) (*.f64 d 2))
2.0ms
(sqrt.f64 (/.f64 d h))
2.0ms
(sqrt.f64 (/.f64 d l))
0.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)

simplify85.0ms (0.4%)

Algorithm
egg-herbie
Rules
696×associate-*l*_binary64
672×associate-/r*_binary64
617×associate-*l/_binary64
520×associate-*r/_binary64
253×associate-/l/_binary64
Counts
183 → 125
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02043113
13662966
213122875
351222875

prune203.0ms (0.9%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New10520125
Fresh000
Picked101
Done000
Total10620126
Error
11.2b
Counts
126 → 20
Alt Table
StatusErrorProgram
44.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.1b
(*.f64 (*.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
27.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1) 3)))
44.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 (sqrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d h))) (sqrt.f64 (sqrt.f64 (/.f64 d h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
21.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.5b
(*.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)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
17.7b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 h) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
31.2b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (/.f64 d h)) 3)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.1b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d l))) (sqrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
39.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.6b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
21.7b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
30.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) 1)
21.4b
(*.f64 (*.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))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (*.f64 (/.f64 M d) (/.f64 D 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.3b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
18.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) h))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
34.2b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 d l))) (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
Compiler

Compiled 5468 to 2743 computations (49.8% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
4.9b
(/.f64 (*.f64 M D) (*.f64 d 2))
7.3b
(fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)
9.3b
(sqrt.f64 (/.f64 d l))

series883.0ms (4.1%)

Counts
1 → 44
Calls

1 calls:

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

rewrite30.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×associate-*l/_binary64
10×add-cbrt-cube_binary64
10×add-exp-log_binary64
10×pow1_binary64
sqrt-div_binary64
Counts
1 → 32
Calls

1 calls:

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

simplify117.0ms (0.5%)

Algorithm
egg-herbie
Rules
658×associate-*l/_binary64
470×associate-*r/_binary64
388×associate-*l*_binary64
347×associate-*r*_binary64
191×*-commutative_binary64
Counts
76 → 66
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01895678
14784872
217014872
351014872

prune279.0ms (1.3%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New14515160
Fresh51419
Picked101
Done000
Total15129180
Error
9.6b
Counts
180 → 29
Alt Table
StatusErrorProgram
16.7b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 (/.f64 d l))) (sqrt.f64 (cbrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.3b
(/.f64 (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1) (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 d))) (sqrt.f64 l))
44.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.1b
(*.f64 (*.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 M (/.f64 d (/.f64 D 2))) 2) (*.f64 (/.f64 h l) -1/2) 1))
44.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 (sqrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d h))) (sqrt.f64 (sqrt.f64 (/.f64 d h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.8b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.2b
(/.f64 (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 d))))) (sqrt.f64 (cbrt.f64 h)))
16.9b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
21.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
17.7b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 h) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
31.2b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (/.f64 d h)) 3)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
23.8b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) 1)
14.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.4b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)) (fabs.f64 (cbrt.f64 h)))
35.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
40.4b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (cbrt.f64 d))) (sqrt.f64 d)) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)) (*.f64 (*.f64 (fabs.f64 (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 h))) (sqrt.f64 l)))
52.2b
(*.f64 (cbrt.f64 (*.f64 d d)) (*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (cbrt.f64 (/.f64 d h)) (pow.f64 (/.f64 1 h) 1/6))))
24.1b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d l))) (sqrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
39.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
16.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
21.7b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
30.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) 1)
24.9b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (sqrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (*.f64 (/.f64 M d) (/.f64 D 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
52.5b
(*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (pow.f64 (/.f64 1 h) 1/6) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
34.2b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 d l))) (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
Compiler

Compiled 9458 to 4346 computations (54% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 d)
4.5b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
4.9b
(/.f64 (*.f64 M D) (*.f64 d 2))
7.3b
(fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)

series1.1s (5.2%)

Counts
2 → 72
Calls

2 calls:

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

rewrite49.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
26×associate-*l/_binary64
20×add-cbrt-cube_binary64
20×add-exp-log_binary64
20×pow1_binary64
17×frac-times_binary64
Counts
2 → 59
Calls

2 calls:

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

simplify225.0ms (1%)

Algorithm
egg-herbie
Rules
812×fma-def_binary64
775×associate-*l*_binary64
756×associate-*r*_binary64
420×*-commutative_binary64
156×distribute-rgt-neg-in_binary64
Counts
131 → 120
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03429782
18707845
232367831
347517797
453357797

prune369.0ms (1.7%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New22710237
Fresh62228
Picked101
Done000
Total23432266
Error
7.7b
Counts
266 → 32
Alt Table
StatusErrorProgram
44.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.1b
(*.f64 (*.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 M (/.f64 d (/.f64 D 2))) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.2b
(/.f64 (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 d))))) (sqrt.f64 (cbrt.f64 h)))
16.9b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
21.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
17.7b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 h) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
31.2b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (/.f64 d h)) 3)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
14.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.4b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)) (fabs.f64 (cbrt.f64 h)))
13.8b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) 3)) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
35.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (*.f64 (/.f64 M d) (/.f64 D 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
19.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) 1)
52.5b
(*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (pow.f64 (/.f64 1 h) 1/6) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
13.5b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)) (*.f64 (fabs.f64 (cbrt.f64 h)) (fabs.f64 (cbrt.f64 l))))
24.1b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d l))) (sqrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
39.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
51.2b
(*.f64 (cbrt.f64 d) (*.f64 (pow.f64 (/.f64 1 (*.f64 l h)) 1/6) (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h)))))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
53.0b
(*.f64 (pow.f64 d 1/3) (*.f64 (pow.f64 (/.f64 1 (*.f64 l h)) 1/6) (*.f64 (fabs.f64 (pow.f64 (/.f64 d l) 1/3)) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
16.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
21.7b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
14.0b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
34.2b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 d l))) (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.8b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d))) (cbrt.f64 (cbrt.f64 d))) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
24.9b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (sqrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
24.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d h))) (sqrt.f64 (sqrt.f64 (/.f64 d h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.2b
(*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))
32.0b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
55.7b
(fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 d 5))) (*.f64 (/.f64 (*.f64 D D) l) (*.f64 (exp.f64 (fma.f64 (log.f64 h) -1/6 (*.f64 (log.f64 l) -1/6))) (*.f64 (cbrt.f64 (/.f64 d l)) (*.f64 h (*.f64 (cbrt.f64 (/.f64 d h)) (*.f64 M M))))))) (*.f64 (cbrt.f64 d) (*.f64 (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h))) (exp.f64 (fma.f64 (log.f64 h) -1/6 (*.f64 (log.f64 l) -1/6))))))
52.2b
(*.f64 (cbrt.f64 (*.f64 d d)) (*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (cbrt.f64 (/.f64 d h)) (pow.f64 (/.f64 1 h) 1/6))))
Compiler

Compiled 15350 to 6309 computations (58.9% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.0b
(*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
2.2b
(*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))
4.9b
(/.f64 (*.f64 M D) (*.f64 d 2))
7.3b
(fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)

series1.7s (7.9%)

Counts
2 → 120
Calls

2 calls:

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

rewrite65.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
28×add-cbrt-cube_binary64
28×add-exp-log_binary64
28×pow1_binary64
27×associate-*l/_binary64
18×frac-times_binary64
Counts
2 → 74
Calls

2 calls:

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

simplify261.0ms (1.2%)

Algorithm
egg-herbie
Rules
596×*-commutative_binary64
578×times-frac_binary64
214×fma-def_binary64
207×distribute-rgt-in_binary64
197×distribute-lft-in_binary64
Counts
194 → 170
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
044215502
1114012652
2246012419
3500812419

prune307.0ms (1.4%)

Pruning

34 alts after pruning (34 fresh and 0 done)

PrunedKeptTotal
New2267233
Fresh42731
Picked101
Done000
Total23134265
Error
7.7b
Counts
265 → 34
Alt Table
StatusErrorProgram
24.9b
(*.f64 (sqrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (sqrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) 3) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
26.4b
(*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (pow.f64 (pow.f64 (/.f64 d l) 1/6) 3))
44.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))) (sqrt.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.1b
(*.f64 (*.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 M (/.f64 d (/.f64 D 2))) 2) (*.f64 (/.f64 h l) -1/2) 1))
41.2b
(/.f64 (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1) (*.f64 (sqrt.f64 (/.f64 d l)) (*.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)) (sqrt.f64 (cbrt.f64 d))))) (sqrt.f64 (cbrt.f64 h)))
16.9b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
21.5b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
17.7b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 h) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
31.2b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (/.f64 d h)) 3)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
50.1b
(*.f64 (cbrt.f64 d) (*.f64 (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h))) (pow.f64 (exp.f64 1/6) (-.f64 (neg.f64 (log.f64 l)) (log.f64 h)))))
14.1b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
16.4b
(/.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 (cbrt.f64 d)) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)) (fabs.f64 (cbrt.f64 h)))
13.2b
(*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (*.f64 (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))))
35.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (*.f64 (/.f64 M d) (/.f64 D 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
19.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) 1)
52.2b
(*.f64 (cbrt.f64 (*.f64 d d)) (*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (cbrt.f64 (/.f64 d h)) (pow.f64 (/.f64 1 h) 1/6))))
13.5b
(/.f64 (*.f64 (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1) (*.f64 (cbrt.f64 d) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (*.f64 (cbrt.f64 d) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))))) (*.f64 (fabs.f64 (cbrt.f64 h)) (fabs.f64 (cbrt.f64 l))))
24.1b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d l))) (sqrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.2b
(*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (*.f64 (*.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1)) (cbrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1))) (cbrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 D M) (*.f64 2 d)) 2) (*.f64 (/.f64 h l) -1/2) 1)))))
39.9b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
51.2b
(*.f64 (cbrt.f64 d) (*.f64 (pow.f64 (/.f64 1 (*.f64 l h)) 1/6) (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h)))))
16.9b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
21.7b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (cbrt.f64 l) (cbrt.f64 l)))) (sqrt.f64 (/.f64 d (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.3b
(*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 2 d))) (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 2 d)))) (cbrt.f64 (/.f64 (*.f64 D M) (*.f64 2 d)))) 2) (*.f64 (/.f64 h l) -1/2) 1)))
34.2b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 d l))) (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.8b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 d) (cbrt.f64 d))) (cbrt.f64 (cbrt.f64 d))) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
13.5b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))) (cbrt.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))))) (cbrt.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l)))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1)))))
24.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (/.f64 d h))) (sqrt.f64 (sqrt.f64 (/.f64 d h)))) (sqrt.f64 (/.f64 d l))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
32.0b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (fma.f64 (/.f64 (*.f64 (*.f64 D D) (*.f64 (*.f64 M M) h)) (*.f64 (*.f64 d d) l)) -1/8 1))
55.7b
(fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 d 5))) (*.f64 (/.f64 (*.f64 D D) l) (*.f64 (exp.f64 (fma.f64 (log.f64 h) -1/6 (*.f64 (log.f64 l) -1/6))) (*.f64 (cbrt.f64 (/.f64 d l)) (*.f64 h (*.f64 (cbrt.f64 (/.f64 d h)) (*.f64 M M))))))) (*.f64 (cbrt.f64 d) (*.f64 (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (/.f64 d h))) (exp.f64 (fma.f64 (log.f64 h) -1/6 (*.f64 (log.f64 l) -1/6))))))
52.5b
(*.f64 (sqrt.f64 (/.f64 1 l)) (*.f64 (pow.f64 (pow.f64 d 2) 1/3) (*.f64 (pow.f64 (/.f64 1 h) 1/6) (fabs.f64 (pow.f64 (/.f64 d h) 1/3)))))
24.6b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 d l))) (cbrt.f64 (sqrt.f64 (/.f64 d l)))) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (fma.f64 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2) (*.f64 (/.f64 h l) -1/2) 1))
Compiler

Compiled 14351 to 5892 computations (58.9% saved)

regimes4.5s (20.7%)

Accuracy

Total 3.7b remaining (26.3%)

Threshold costs 0b (0%)

Counts
231 → 2
Compiler

Compiled 73600 to 46947 computations (36.2% saved)

bsearch36.0ms (0.2%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

simplify19.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
059195
191195
2112195
3128195
4147195
5163195
6171195
7175195
8176195
9172195

end21.0ms (0.1%)

Compiler

Compiled 384 to 198 computations (48.4% saved)

sample6.8s (31.6%)

Algorithm
intervals
Results
1.7s8534×body128nan
1.7s8000×body128valid
1.1s4868×body128invalid
Compiler

Compiled 1807 to 1085 computations (40% saved)

Profiling

Loading profile data...