Details

Time bar (total: 14.9s)

analyze2.2s (14.6%)

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

Compiled 41 to 32 computations (22% saved)

sample5.6s (37.6%)

Symmetry

(sort M D)

Results
3.3s13662×body128invalid
2.1s8256×body128valid
Compiler

Compiled 122 to 95 computations (22.1% 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

2 alts after pruning (2 fresh and 0 done)

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

Compiled 146 to 106 computations (27.4% saved)

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.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))))
9.4b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
11.2b
(pow.f64 (/.f64 d l) (/.f64 1 2))
11.4b
(pow.f64 (/.f64 d h) (/.f64 1 2))

series1.2s (8.4%)

Counts
4 → 144
Calls

4 calls:

417.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
396.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
236.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
195.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))))

rewrite79.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
427×log1p-udef_binary64
242×add-sqr-sqrt_binary64
232×log1p-expm1-u_binary64
232×expm1-log1p-u_binary64
227×add-cbrt-cube_binary64
Counts
4 → 67
Calls

4 calls:

78.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))))
78.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
78.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
78.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02474
150773
2469873
3555573

simplify86.0ms (0.6%)

Algorithm
egg-herbie
Rules
714×associate-/r/_binary64
631×associate-/l/_binary64
227×associate-/l*_binary64
225×times-frac_binary64
149×associate-*r*_binary64
Counts
211 → 92
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0913502
11973448
25243384
323233112
451363112

prune146.0ms (1%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New722092
Fresh000
Picked101
Done000
Total732093
Error
10.3b
Counts
93 → 20
Alt Table
StatusErrorProgram
24.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 d 2)) 2)) h) l)))
41.3b
(*.f64 (*.f64 (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.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))))
24.6b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) 1/4) (pow.f64 (/.f64 d h) 1/4)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.5b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (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))))
58.9b
(log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l)))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l)))))
43.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 d) (pow.f64 (/.f64 1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.8b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
33.7b
(*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
38.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))
38.6b
(expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))))
34.0b
(*.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))))
40.2b
(*.f64 (*.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))))
26.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (exp.f64 (log.f64 (sqrt.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.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.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))))
24.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
59.6b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
24.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))) 3)))
Compiler

Compiled 4560 to 2983 computations (34.6% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.5b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (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))))
9.4b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
11.2b
(pow.f64 (/.f64 d l) (/.f64 1 2))
11.4b
(sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d)))

series510.0ms (3.4%)

Counts
2 → 32
Calls

2 calls:

496.0ms
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (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
(sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d)))

rewrite71.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
269×add-sqr-sqrt_binary64
253×log1p-expm1-u_binary64
253×expm1-log1p-u_binary64
250×add-cbrt-cube_binary64
250×add-log-exp_binary64
Counts
2 → 37
Calls

2 calls:

70.0ms
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (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))))
70.0ms
(sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02757
156256
2507056

simplify88.0ms (0.6%)

Algorithm
egg-herbie
Rules
569×associate-/l/_binary64
540×distribute-rgt-neg-in_binary64
500×distribute-lft-neg-in_binary64
492×associate-*r*_binary64
429×associate-*l*_binary64
Counts
69 → 43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0271155
1631107
21501107
35081107
423971107
547461107
649961107
749491107

prune178.0ms (1.2%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New84488
Fresh11819
Picked101
Done000
Total8622108
Error
10.3b
Counts
108 → 22
Alt Table
StatusErrorProgram
24.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 d 2)) 2)) h) l)))
41.3b
(*.f64 (*.f64 (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.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))))
58.9b
(log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l)))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l)))))
43.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 d) (pow.f64 (/.f64 1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.8b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
24.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (cbrt.f64 (/.f64 d l)) (cbrt.f64 (sqrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
38.7b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 (pow.f64 d 2) l)))))
59.6b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
35.8b
(*.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 -1 h) (neg.f64 d)) 3/2) 1/3) (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))))
33.7b
(*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
38.7b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))
41.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 -1 h)) (sqrt.f64 (neg.f64 d))) (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))))
38.6b
(expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))))
34.0b
(*.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))))
43.0b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.2b
(*.f64 (*.f64 (/.f64 (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))))
26.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (exp.f64 (log.f64 (sqrt.f64 (/.f64 d l))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.6b
(*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 d h) 1/4) (pow.f64 (/.f64 d h) 1/4)) (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 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.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))))
24.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
Compiler

Compiled 4703 to 3180 computations (32.4% saved)

localize131.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
9.4b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
11.1b
(sqrt.f64 (/.f64 l d))
11.4b
(pow.f64 (/.f64 d h) (/.f64 1 2))

series213.0ms (1.4%)

Counts
2 → 33
Calls

2 calls:

200.0ms
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
14.0ms
(sqrt.f64 (/.f64 l d))

rewrite36.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
257×add-sqr-sqrt_binary64
243×log1p-expm1-u_binary64
243×expm1-log1p-u_binary64
240×add-log-exp_binary64
239×add-cbrt-cube_binary64
Counts
2 → 37
Calls

2 calls:

35.0ms
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
35.0ms
(sqrt.f64 (/.f64 l d))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02547
153247
2488047

simplify75.0ms (0.5%)

Algorithm
egg-herbie
Rules
575×associate-/l/_binary64
540×distribute-rgt-neg-in_binary64
500×distribute-lft-neg-in_binary64
492×associate-*r*_binary64
429×associate-*l*_binary64
Counts
70 → 45
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0301164
1721116
21791116
35631116
424801116
548341116
649711116

prune139.0ms (0.9%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New82890
Fresh81321
Picked101
Done000
Total9121112
Error
10.0b
Counts
112 → 21
Alt Table
StatusErrorProgram
40.2b
(*.f64 (*.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))))
25.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 l d)))))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
43.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
40.2b
(*.f64 (*.f64 (*.f64 (sqrt.f64 d) (pow.f64 (/.f64 1 h) 1/2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.8b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
33.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (log.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l)))))
59.6b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
35.8b
(*.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 -1 h) (neg.f64 d)) 3/2) 1/3) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
33.7b
(*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
41.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 -1 h)) (sqrt.f64 (neg.f64 d))) (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))))
34.0b
(*.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))))
43.0b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
24.5b
(*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
41.2b
(cbrt.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l)))) 3))
41.4b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.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.1b
(pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))) 2)
38.7b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 (pow.f64 d 2) l)))))
59.9b
(neg.f64 (/.f64 d (*.f64 h l)))
41.3b
(*.f64 (*.f64 (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 h))) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
Compiler

Compiled 4438 to 2840 computations (36% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.5b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
6.0b
(/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)
11.1b
(sqrt.f64 (/.f64 l d))
11.4b
(pow.f64 (/.f64 d h) (/.f64 1 2))

series534.0ms (3.6%)

Counts
2 → 93
Calls

2 calls:

326.0ms
(/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)
207.0ms
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))

rewrite40.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
256×add-sqr-sqrt_binary64
242×log1p-expm1-u_binary64
242×expm1-log1p-u_binary64
239×add-log-exp_binary64
238×add-cbrt-cube_binary64
Counts
2 → 33
Calls

2 calls:

39.0ms
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
39.0ms
(/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02563
153063
2489063

simplify103.0ms (0.7%)

Algorithm
egg-herbie
Rules
725×associate-/r/_binary64
633×associate-/l/_binary64
471×*-commutative_binary64
452×fma-def_binary64
305×distribute-rgt-neg-in_binary64
Counts
126 → 46
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0452664
11022616
23462616
317872616
438512616
548852616
650452616

prune118.0ms (0.8%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New86793
Fresh51520
Picked101
Done000
Total9222114
Error
9.5b
Counts
114 → 22
Alt Table
StatusErrorProgram
24.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (/.f64 d l) 1/4) (pow.f64 (/.f64 d l) 1/4))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.8b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
24.4b
(*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
33.8b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (log.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l)))))
59.6b
(*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) d) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
40.7b
(*.f64 (*.f64 (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 h))) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
35.8b
(*.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 -1 h) (neg.f64 d)) 3/2) 1/3) (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))))
32.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (cbrt.f64 (pow.f64 (/.f64 l d) 3/2)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
33.7b
(*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
41.3b
(*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 -1 h)) (sqrt.f64 (neg.f64 d))) (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))))
34.0b
(*.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))))
43.0b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.f64 l)))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
41.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (/.f64 (sqrt.f64 l) (sqrt.f64 d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
30.8b
(expm1.f64 (log1p.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))))
41.2b
(cbrt.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l)))) 3))
25.6b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 1 (expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 l d)))))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
43.0b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.f64 (sqrt.f64 (neg.f64 d)) (sqrt.f64 (neg.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 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (/.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.3b
(*.f64 (*.f64 (/.f64 (sqrt.f64 d) (sqrt.f64 h)) (/.f64 1 (sqrt.f64 (/.f64 l d)))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) h) l)))
31.1b
(pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 l d))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))) 2)
38.7b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 -1 h) (neg.f64 d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 (pow.f64 d 2) l)))))
59.9b
(neg.f64 (/.f64 d (*.f64 h l)))
Compiler

Compiled 3767 to 2361 computations (37.3% saved)

regimes1.7s (11.7%)

Accuracy

Total 7.3b remaining (39.2%)

Threshold costs 0b (0%)

Counts
123 → 3
Compiler

Compiled 32671 to 24883 computations (23.8% saved)

bsearch786.0ms (5.3%)

Steps
ItersRangePoint
7
1.4701407994876362e+23
4.238512840606073e+24
1.9115375279058692e+23
9
-1.0294624630244227e-287
-3.1024289247085445e-296
-3.170040707759249e-296
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
056153
177153
2101153
3120153
4129153
5132153
6129153

end674.0ms (4.5%)

Remove

(sort M D)

Compiler

Compiled 1186 to 872 computations (26.5% saved)

Profiling

Loading profile data...