Details

Time bar (total: 13.8s)

analyze598.0ms (4.3%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
12.5%68.6%18.9%6
18.7%62.4%18.9%7
18.7%59.3%22%8
28.1%39%32.9%9
32.8%34.3%32.9%10
32.8%32%35.3%11
38.2%20.7%41.1%12
41%17.9%41.1%13
41%16.6%42.5%14
Compiler

Compiled 41 to 24 computations (41.5% saved)

sample136.0ms (1%)

Algorithm
intervals
Results
57.0ms243×body256valid
5.0ms42×body128nan
1.0ms13×body128valid
Compiler

Compiled 84 to 50 computations (40.5% saved)

simplify194.0ms (1.4%)

Algorithm
egg-herbie
Rules
729×fma-neg_binary64
636×times-frac_binary64
620×div-sub_binary64
565×unsub-neg_binary64
481×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02052
15450
214450
340648
482648
5152348
6191148
7263248
8258948
9297148
10362548
11419348
12437548
13448548
14453348
15455748
16460748
17488248
18484848

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
39.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
39.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
39.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
Compiler

Compiled 219 to 116 computations (47% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
8.2b
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
10.7b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
31.1b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.7s (12.4%)

Counts
4 → 120
Calls

4 calls:

889.0ms
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
751.0ms
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
54.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
17.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

rewrite23.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary64
11×cbrt-prod_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
times-frac_binary64
Counts
4 → 68
Calls

4 calls:

7.0ms
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
7.0ms
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
3.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

simplify120.0ms (0.9%)

Algorithm
egg-herbie
Rules
502×times-frac_binary64
427×associate-*r*_binary64
289×associate-/r*_binary64
268×fma-def_binary64
264×associate-/l*_binary64
Counts
188 → 235
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05137190
114356951
250766951

prune757.0ms (5.5%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New30519324
Fresh011
Picked101
Done000
Total30620326
Error
33.0b
Counts
326 → 20
Alt Table
StatusErrorProgram
35.4b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
48.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (pow.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2) 1/3))
37.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
51.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (-.f64 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) g)) a) -1/2)))
54.3b
(+.f64 (*.f64 (cbrt.f64 1/2) (pow.f64 (exp.f64 1/3) (-.f64 (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a))) (log.f64 g)))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
38.8b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
48.2b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
54.5b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (/.f64 (*.f64 2 g) a) 1/3)))
41.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (fma.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)))))) (*.f64 1/12 (/.f64 (*.f64 (*.f64 h h) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)))))))) (*.f64 g g)))))
39.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
35.6b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
54.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 1 g)))))))
51.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (log.f64 (exp.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
43.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
54.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
39.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
43.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 17281 to 8988 computations (48% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
10.7b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
31.1b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series18.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

18.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)

rewrite11.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary64
21×prod-diff_binary64
19×*-un-lft-identity_binary64
17×sqrt-prod_binary64
17×add-cube-cbrt_binary64
Counts
1 → 47
Calls

1 calls:

7.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)

simplify121.0ms (0.9%)

Algorithm
egg-herbie
Rules
689×fma-def_binary64
458×associate-/l*_binary64
427×associate-/r*_binary64
424×fma-neg_binary64
237×cancel-sign-sub-inv_binary64
Counts
71 → 95
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01582090
13711451
212811337
344951337
449291337
549901337
650001337
748661337

prune1.3s (9.4%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New33510345
Fresh71219
Picked101
Done000
Total34322365
Error
32.7b
Counts
365 → 22
Alt Table
StatusErrorProgram
35.5b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
41.4b
(+.f64 (*.f64 (cbrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (*.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g)))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
48.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (pow.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2) 1/3))
37.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
38.8b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
41.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
57.4b
(+.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 (*.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 g) (cbrt.f64 g))))) (fma.f64 (neg.f64 (cbrt.f64 g)) (*.f64 (cbrt.f64 g) (cbrt.f64 g)) (*.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 g) (cbrt.f64 g)))))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (fma.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)))))) (*.f64 1/12 (/.f64 (*.f64 (*.f64 h h) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)))))))) (*.f64 g g)))))
39.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
35.6b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.0b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
43.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
46.7b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))) a) -1/2)))
36.5b
(+.f64 (*.f64 (cbrt.f64 (exp.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
57.3b
(+.f64 (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 g))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
51.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (-.f64 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) g)) a) -1/2)))
47.7b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (-.f64 (*.f64 1/2 (/.f64 (*.f64 h h) g)) g)) a) -1/2)))
45.4b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -2 g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
49.2b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
39.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 17401 to 8145 computations (53.2% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
10.8b
(cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))
31.1b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series729.0ms (5.3%)

Counts
1 → 36
Calls

1 calls:

728.0ms
(cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
16×cbrt-prod_binary64
15×*-un-lft-identity_binary64
12×times-frac_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
1 → 27
Calls

1 calls:

6.0ms
(cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))

simplify73.0ms (0.5%)

Algorithm
egg-herbie
Rules
885×associate-/l*_binary64
430×fma-def_binary64
197×associate-/r/_binary64
196×cancel-sign-sub-inv_binary64
125×unswap-sqr_binary64
Counts
63 → 97
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02502908
16462819
219852555
351802555

prune1.7s (12.3%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New3628370
Fresh51621
Picked101
Done000
Total36824392
Error
32.6b
Counts
392 → 24
Alt Table
StatusErrorProgram
40.3b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))) (sqrt.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)))) (cbrt.f64 -1/2)))
41.4b
(+.f64 (*.f64 (cbrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (*.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g)))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.2b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (cbrt.f64 (/.f64 (sqrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 a)))) (cbrt.f64 -1/2)))
51.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (-.f64 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) g)) a) -1/2)))
49.3b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) g))) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
38.8b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
41.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
57.4b
(+.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 (*.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 g) (cbrt.f64 g))))) (fma.f64 (neg.f64 (cbrt.f64 g)) (*.f64 (cbrt.f64 g) (cbrt.f64 g)) (*.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 g) (cbrt.f64 g)))))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
57.3b
(+.f64 (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 g))) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
50.8b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (fma.f64 1/12 (*.f64 (/.f64 (*.f64 h h) (*.f64 g g)) (*.f64 (pow.f64 (/.f64 -1 g) 1/3) (pow.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)) 1/3))) (*.f64 (pow.f64 (/.f64 -1 g) 1/3) (pow.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)) 1/3))) (cbrt.f64 -1/2)))
49.2b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.6b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.0b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.6b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a)) (cbrt.f64 -1/2)))
43.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
46.7b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))) a) -1/2)))
53.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
34.4b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 -1/2)))
36.5b
(+.f64 (*.f64 (cbrt.f64 (exp.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
37.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.7b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (-.f64 (*.f64 1/2 (/.f64 (*.f64 h h) g)) g)) a) -1/2)))
45.4b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -2 g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
39.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 18830 to 8603 computations (54.3% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
1.4b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
31.1b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series18.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

18.0ms
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))

rewrite5.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-log-exp_binary64
fma-def_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
1 → 17
Calls

1 calls:

5.0ms
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))

simplify59.0ms (0.4%)

Algorithm
egg-herbie
Rules
675×fma-neg_binary64
456×times-frac_binary64
261×fma-def_binary64
235×associate-/r*_binary64
230×associate-/l*_binary64
Counts
41 → 65
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
098894
1295845
2829805
33779801
44982801

prune1.6s (11.5%)

Pruning

23 alts after pruning (23 fresh and 0 done)

PrunedKeptTotal
New3353338
Fresh32023
Picked101
Done000
Total33923362
Error
32.4b
Counts
362 → 23
Alt Table
StatusErrorProgram
40.3b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))) (sqrt.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)))) (cbrt.f64 -1/2)))
41.4b
(+.f64 (*.f64 (cbrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (*.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g)))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.2b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (cbrt.f64 (/.f64 (sqrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 a)))) (cbrt.f64 -1/2)))
51.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (-.f64 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) g)) a) -1/2)))
49.3b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) g))) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
38.8b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 -1/2)))
41.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
56.8b
(+.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 (*.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 g) (cbrt.f64 g))))) (fma.f64 (neg.f64 (cbrt.f64 g)) (*.f64 (cbrt.f64 g) (cbrt.f64 g)) (*.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 g) (cbrt.f64 g)))))) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 -1/2)))
57.3b
(+.f64 (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 g))) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
50.8b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (fma.f64 1/12 (*.f64 (/.f64 (*.f64 h h) (*.f64 g g)) (*.f64 (pow.f64 (/.f64 -1 g) 1/3) (pow.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)) 1/3))) (*.f64 (pow.f64 (/.f64 -1 g) 1/3) (pow.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a)) 1/3))) (cbrt.f64 -1/2)))
49.2b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.6b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a)) (cbrt.f64 -1/2)))
43.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
46.7b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))) a) -1/2)))
53.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (cbrt.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a)) (cbrt.f64 -1/2)))
36.5b
(+.f64 (*.f64 (cbrt.f64 (exp.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
48.6b
(+.f64 (*.f64 (cbrt.f64 (-.f64 g g)) (cbrt.f64 (/.f64 1/2 a))) (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 -1/2)))
45.4b
(+.f64 (*.f64 (cbrt.f64 (*.f64 -2 g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.6b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
39.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 16244 to 7643 computations (52.9% saved)

regimes1.7s (12.4%)

Accuracy

Total 1.8b remaining (5.5%)

Threshold costs 0b (0%)

Counts
173 → 1
Compiler

Compiled 48423 to 28796 computations (40.5% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02457
13857
24757
35357
45657
55557

end1.0ms (0%)

Compiler

Compiled 39 to 23 computations (41% saved)

sample2.8s (20.4%)

Algorithm
intervals
Results
1.8s7591×body256valid
141.0ms1198×body128nan
50.0ms409×body128valid
Compiler

Compiled 1067 to 602 computations (43.6% saved)

Profiling

Loading profile data...