Details

Time bar (total: 15.5s)

analyze2.4s (15.2%)

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)

sample6.1s (39.1%)

Symmetry

(sort M D)

Results
3.6s13927×body128invalid
2.4s8256×body128valid
Compiler

Compiled 122 to 95 computations (22.1% saved)

simplify16.0ms (0.1%)

Algorithm
egg-herbie
Rules
425×associate-/l*_binary64
398×*-commutative_binary64
236×associate-/l/_binary64
214×associate-/r/_binary64
203×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02441
16241
219539
3130939
Stop Event
node limit
Counts
1 → 2

prune7.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
25.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
26.8b
(*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 d l)) (fma.f64 (/.f64 h l) (*.f64 (pow.f64 (*.f64 M (/.f64 (/.f64 D d) 2)) 2) -1/2) 1)))
26.6b
(*.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 208 to 151 computations (27.4% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.0b
(*.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))))
10.3b
(pow.f64 (/.f64 d h) (/.f64 1 2))
12.2b
(pow.f64 (/.f64 d l) (/.f64 1 2))
15.0b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

series1.0s (6.7%)

Counts
4 → 144
Calls

4 calls:

342.0ms
(pow.f64 (/.f64 d l) (/.f64 1 2))
339.0ms
(pow.f64 (/.f64 d h) (/.f64 1 2))
180.0ms
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))
170.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))))

rewrite35.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
242×add-sqr-sqrt_binary64
232×log1p-expm1-u_binary64
232×expm1-log1p-u_binary64
228×add-cbrt-cube_binary64
226×add-cube-cbrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02474
151073
Stop Event
node limit
Counts
4 → 65
Calls

4 calls:

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

simplify71.0ms (0.5%)

Algorithm
egg-herbie
Rules
633×associate-/l/_binary64
225×associate-/l*_binary64
225×times-frac_binary64
147×associate-*r*_binary64
130×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0913502
12313448
26233384
328313112
Stop Event
node limit
Counts
209 → 90

prune145.0ms (0.9%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New721890
Fresh011
Picked101
Done000
Total731992
Error
10.6b
Counts
92 → 19
Alt Table
StatusErrorProgram
26.8b
(*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 d l)) (fma.f64 (/.f64 h l) (*.f64 (pow.f64 (*.f64 M (/.f64 (/.f64 D d) 2)) 2) -1/2) 1)))
26.9b
(*.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 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))) 3)))
26.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 d l)) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 d l)) 1/2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.2b
(*.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)))
42.1b
(*.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))))
42.7b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
26.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
47.5b
(fma.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)) (*.f64 -1/8 (/.f64 (sqrt.f64 (/.f64 h (pow.f64 l 3))) (/.f64 (/.f64 d M) (*.f64 D (*.f64 D M))))))
34.4b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))) 3)
34.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (log.f64 (pow.f64 (exp.f64 (/.f64 h l)) (*.f64 1/2 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2))))))
42.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))))))
34.0b
(pow.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))) 1)
43.9b
(*.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))))
42.6b
(*.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))))
26.7b
(*.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))))
44.1b
(*.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))))
41.9b
(*.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 d h) 2)) 1/2) (pow.f64 (cbrt.f64 (/.f64 d 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))))
60.2b
(log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l)))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))))
36.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (/.f64 (*.f64 (*.f64 M M) 1/8) (/.f64 l h)))))
Compiler

Compiled 4395 to 2859 computations (34.9% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.0b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
10.2b
(sqrt.f64 (/.f64 h d))
12.2b
(pow.f64 (/.f64 d l) (/.f64 1 2))
15.0b
(*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))

series214.0ms (1.4%)

Counts
2 → 33
Calls

2 calls:

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

rewrite30.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
255×add-sqr-sqrt_binary64
241×log1p-expm1-u_binary64
241×expm1-log1p-u_binary64
238×add-cbrt-cube_binary64
237×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02547
153247
Stop Event
node limit
Counts
2 → 35
Calls

2 calls:

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

simplify42.0ms (0.3%)

Algorithm
egg-herbie
Rules
469×associate-*r*_binary64
416×associate-*l*_binary64
300×cancel-sign-sub-inv_binary64
264×unswap-sqr_binary64
256×associate-/l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0301164
1721116
21901116
36821116
435491116
Stop Event
node limit
Counts
68 → 43

prune146.0ms (0.9%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New771087
Fresh51318
Picked011
Done000
Total8224106
Error
10.4b
Counts
106 → 24
Alt Table
StatusErrorProgram
43.9b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
34.9b
(pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))) 2)
26.5b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))) 1)
26.8b
(*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 d l)) (fma.f64 (/.f64 h l) (*.f64 (pow.f64 (*.f64 M (/.f64 (/.f64 D d) 2)) 2) -1/2) 1)))
36.1b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (/.f64 (*.f64 (*.f64 M M) 1/8) (/.f64 l h)))))
26.8b
(*.f64 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 (/.f64 h d)) (cbrt.f64 (sqrt.f64 (/.f64 h 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))))
60.3b
(/.f64 (neg.f64 d) (*.f64 h l))
26.9b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 d l)) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 d l)) 1/2))) (-.f64 1 (*.f64 (*.f64 (/.f64 1 2) (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)) (/.f64 h l))))
42.2b
(*.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)))
60.0b
(*.f64 -1/8 (*.f64 (*.f64 D (*.f64 (/.f64 D d) (*.f64 M M))) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
44.1b
(*.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))))
26.6b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (/.f64 (*.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2)) h) l)))
42.1b
(*.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))))
42.7b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
26.6b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))) 3)))
26.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
47.5b
(fma.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)) (*.f64 -1/8 (/.f64 (sqrt.f64 (/.f64 h (pow.f64 l 3))) (/.f64 (/.f64 d M) (*.f64 D (*.f64 D M))))))
42.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (/.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))))
34.4b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 d h) (/.f64 d l))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))) 3)
42.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))))))
43.9b
(*.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))))
42.6b
(*.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))))
26.7b
(*.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))))
36.1b
(*.f64 (*.f64 (pow.f64 (/.f64 d h) (/.f64 1 2)) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (/.f64 (*.f64 (*.f64 M M) 1/8) (/.f64 l h)))))
Compiler

Compiled 4484 to 2861 computations (36.2% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.0b
(*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))
10.2b
(sqrt.f64 (/.f64 h d))
12.2b
(sqrt.f64 (/.f64 d l))
15.0b
(*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))

series389.0ms (2.5%)

Counts
3 → 93
Calls

3 calls:

190.0ms
(*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))
187.0ms
(*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))
11.0ms
(sqrt.f64 (/.f64 d l))

rewrite34.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
247×add-sqr-sqrt_binary64
235×log1p-expm1-u_binary64
235×expm1-log1p-u_binary64
233×add-cbrt-cube_binary64
231×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02364
151764
Stop Event
node limit
Counts
3 → 51
Calls

3 calls:

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

simplify58.0ms (0.4%)

Algorithm
egg-herbie
Rules
723×associate-/r/_binary64
627×associate-/l/_binary64
458×*-commutative_binary64
240×associate-/l*_binary64
233×times-frac_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0462664
11312616
23912616
322112616
Stop Event
node limit
Counts
144 → 64

prune159.0ms (1%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New79685
Fresh51722
Picked101
Done011
Total8524109
Error
10.1b
Counts
109 → 24
Alt Table
StatusErrorProgram
43.9b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
34.9b
(pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))) 2)
26.8b
(pow.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 d l)) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 d l)) 1/2)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))) 1)
26.8b
(*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 d l)) (fma.f64 (/.f64 h l) (*.f64 (pow.f64 (*.f64 M (/.f64 (/.f64 D d) 2)) 2) -1/2) 1)))
36.1b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (/.f64 (*.f64 (*.f64 M M) 1/8) (/.f64 l h)))))
26.8b
(*.f64 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 (/.f64 h d)) (cbrt.f64 (sqrt.f64 (/.f64 h 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))))
60.3b
(/.f64 (neg.f64 d) (*.f64 h l))
42.2b
(*.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)))
26.5b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) (/.f64 h l))) 2)))) 1)
60.0b
(*.f64 -1/8 (*.f64 (*.f64 D (*.f64 (/.f64 D d) (*.f64 M M))) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
44.1b
(*.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))))
42.1b
(*.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))))
42.7b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
26.6b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))) 3)))
26.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
47.5b
(fma.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)) (*.f64 -1/8 (/.f64 (sqrt.f64 (/.f64 h (pow.f64 l 3))) (/.f64 (/.f64 d M) (*.f64 D (*.f64 D M))))))
42.7b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))) 1)
42.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (/.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))))
43.9b
(*.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))))
42.6b
(*.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))))
26.7b
(*.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))))
26.6b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) h) l)))) 1)
41.6b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (/.f64 (sqrt.f64 h) (sqrt.f64 d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))) 1)
37.8b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 1/4 (*.f64 D (*.f64 (/.f64 D (*.f64 d d)) (*.f64 (*.f64 M M) (/.f64 h l)))))))) 1)
Compiler

Compiled 4217 to 2569 computations (39.1% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
10.2b
(sqrt.f64 (/.f64 h d))
12.2b
(sqrt.f64 (/.f64 d l))
15.0b
(*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) (/.f64 h l))
15.9b
(sqrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) (/.f64 h l)))

series245.0ms (1.6%)

Counts
2 → 96
Calls

2 calls:

176.0ms
(*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) (/.f64 h l))
68.0ms
(sqrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) (/.f64 h l)))

rewrite54.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
275×expm1-udef_binary64
275×log1p-udef_binary64
154×add-sqr-sqrt_binary64
147×log1p-expm1-u_binary64
147×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01540
132037
2406337
Stop Event
node limit
Counts
2 → 51
Calls

2 calls:

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

simplify80.0ms (0.5%)

Algorithm
egg-herbie
Rules
680×unswap-sqr_binary64
584×associate-/r/_binary64
539×associate-/l/_binary64
403×*-commutative_binary64
220×times-frac_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0342148
1992148
23022148
317732148
438382148
541152148
Stop Event
node limit
Counts
147 → 60

prune183.0ms (1.2%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New993102
Fresh22022
Picked101
Done011
Total10224126
Error
9.4b
Counts
126 → 24
Alt Table
StatusErrorProgram
43.9b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
34.9b
(pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))))) 2)
26.8b
(pow.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 d l)) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 d l)) 1/2)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))) 1)
26.8b
(*.f64 (sqrt.f64 (/.f64 d h)) (*.f64 (sqrt.f64 (/.f64 d l)) (fma.f64 (/.f64 h l) (*.f64 (pow.f64 (*.f64 M (/.f64 (/.f64 D d) 2)) 2) -1/2) 1)))
36.1b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (/.f64 (*.f64 (*.f64 M M) 1/8) (/.f64 l h)))))
26.8b
(*.f64 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 (/.f64 h d)) (cbrt.f64 (sqrt.f64 (/.f64 h 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))))
28.3b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) (sqrt.f64 (/.f64 h l))) 3)) 2)))) 1)
60.3b
(/.f64 (neg.f64 d) (*.f64 h l))
42.2b
(*.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)))
60.0b
(*.f64 -1/8 (*.f64 (*.f64 D (*.f64 (/.f64 D d) (*.f64 M M))) (sqrt.f64 (/.f64 h (pow.f64 l 3)))))
44.1b
(*.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))))
42.1b
(*.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))))
42.7b
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 l h))) d)
26.6b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (pow.f64 (/.f64 d l) (/.f64 1 2))) (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l)))) 3)))
26.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h 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))))
47.5b
(fma.f64 d (sqrt.f64 (/.f64 (pow.f64 h -1) l)) (*.f64 -1/8 (/.f64 (sqrt.f64 (/.f64 h (pow.f64 l 3))) (/.f64 (/.f64 d M) (*.f64 D (*.f64 D M))))))
25.2b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 (/.f64 h l)) d) (*.f64 D M))) 2)))) 1)
41.6b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (/.f64 (sqrt.f64 h) (sqrt.f64 d))) (-.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 M 2) (/.f64 D d)) 2) (/.f64 h l))))) 1)
42.7b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (*.f64 l (pow.f64 d 2))))))) 1)
42.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (/.f64 h d))) (/.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))))
43.9b
(*.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))))
42.6b
(*.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))))
26.6b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (*.f64 (*.f64 M 1/2) (/.f64 D d)) 2) h) l)))) 1)
25.1b
(pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 d l)) (sqrt.f64 (/.f64 h d))) (-.f64 1 (*.f64 1/2 (pow.f64 (*.f64 (*.f64 D (/.f64 M d)) (*.f64 (sqrt.f64 (/.f64 h l)) -1/2)) 2)))) 1)
Compiler

Compiled 4401 to 2534 computations (42.4% saved)

regimes3.5s (22.5%)

Accuracy

Total 9.8b remaining (50.7%)

Threshold costs 0b (0%)

Counts
150 → 4
Compiler

Compiled 41177 to 31090 computations (24.5% saved)

bsearch9.0ms (0.1%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
073281
1109281
2140281
3158281
4172281
5178281
6179281
Stop Event
saturated

end565.0ms (3.6%)

Remove

(sort M D)

Compiler

Compiled 1576 to 1060 computations (32.7% saved)

Profiling

Loading profile data...