Details

Time bar (total: 14.8s)

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

sample2.9s (19.6%)

Results
2.5s7806×body256valid
193.0ms1188×body128invalid
83.0ms450×body128valid
Compiler

Compiled 122 to 71 computations (41.8% saved)

simplify192.0ms (1.3%)

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
38.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
38.9b
(+.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)))))))
38.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 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 219 to 116 computations (47% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
7.8b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
9.4b
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
32.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.5s (10.3%)

Counts
4 → 120
Calls

4 calls:

766.0ms
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
726.0ms
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
16.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
7.0ms
(-.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:

9.0ms
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
6.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))

simplify113.0ms (0.8%)

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 → 237
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05137190
114356951
250766951

prune729.0ms (4.9%)

Pruning

23 alts after pruning (23 fresh and 0 done)

PrunedKeptTotal
New30422326
Fresh011
Picked101
Done000
Total30523328
Error
33.7b
Counts
328 → 23
Alt Table
StatusErrorProgram
38.8b
(+.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)))) a)) (cbrt.f64 -1/2)))
35.7b
(+.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)))
41.1b
(+.f64 (expm1.f64 (log1p.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)))
48.6b
(+.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))))
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)))
39.0b
(+.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)))
53.8b
(+.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)))
55.5b
(+.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 -1 g)) (log.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) a))))))))
38.9b
(+.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)))))))
39.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))) (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
45.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
56.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 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
38.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
53.2b
(+.f64 (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (pow.f64 g 2) (pow.f64 h 2))) g)) (log.f64 (/.f64 -1 a)))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
56.6b
(+.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)))))))
43.5b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (expm1.f64 (log1p.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)))
60.9b
(+.f64 (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (fma.f64 2 (log.f64 h) (log.f64 (/.f64 -1/2 (*.f64 g a))))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.8b
(+.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)))
55.3b
(+.f64 (*.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 -1 g))))) (cbrt.f64 1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
54.3b
(+.f64 (+.f64 (*.f64 1/12 (/.f64 (*.f64 (cbrt.f64 1/2) (*.f64 (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 1 g)) (log.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) a)))))) (pow.f64 h 2))) (pow.f64 g 2))) (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 1 g)) (log.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) a)))))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.6b
(+.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)))
36.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) 2)) (cbrt.f64 (/.f64 (cbrt.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)))
50.6b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (neg.f64 g)) a) -1/2)))
Compiler

Compiled 17675 to 9239 computations (47.7% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.0b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
7.8b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
32.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series15.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

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

simplify53.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.3s (8.5%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New3106316
Fresh71522
Picked101
Done000
Total31821339
Error
33.2b
Counts
339 → 21
Alt Table
StatusErrorProgram
38.8b
(+.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)))) a)) (cbrt.f64 -1/2)))
48.6b
(+.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))))
39.0b
(+.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)))
44.5b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.8b
(+.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)))
38.9b
(+.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)))))))
39.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))) (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
45.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
38.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
53.2b
(+.f64 (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (pow.f64 g 2) (pow.f64 h 2))) g)) (log.f64 (/.f64 -1 a)))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.3b
(+.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 1/2 (/.f64 (pow.f64 h 2) g)) a) -1/2)))
60.9b
(+.f64 (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (fma.f64 2 (log.f64 h) (log.f64 (/.f64 -1/2 (*.f64 g a))))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
37.6b
(+.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)))
34.8b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
36.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) 2)) (cbrt.f64 (/.f64 (cbrt.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)))
50.4b
(+.f64 (/.f64 (cbrt.f64 (-.f64 g 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.7b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.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))))) 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.2b
(+.f64 (/.f64 (cbrt.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)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.8b
(+.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)))
55.3b
(+.f64 (*.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 -1 g))))) (cbrt.f64 1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
54.3b
(+.f64 (+.f64 (*.f64 1/12 (/.f64 (*.f64 (cbrt.f64 1/2) (*.f64 (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 1 g)) (log.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) a)))))) (pow.f64 h 2))) (pow.f64 g 2))) (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 1 g)) (log.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) a)))))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 15915 to 7777 computations (51.1% saved)

localize19.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)
2.0b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
32.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series15.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

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

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

simplify119.0ms (0.8%)

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.7s (11.5%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New32810338
Fresh51520
Picked101
Done000
Total33425359
Error
33.2b
Counts
359 → 25
Alt Table
StatusErrorProgram
35.8b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (exp.f64 (log.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (cbrt.f64 a)))
36.2b
(+.f64 (/.f64 (cbrt.f64 (exp.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
38.8b
(+.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)))) a)) (cbrt.f64 -1/2)))
48.6b
(+.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))))
34.8b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (cbrt.f64 a)))
49.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 g g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
56.9b
(+.f64 (/.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 g))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
39.0b
(+.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)))
44.5b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.8b
(+.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)))
50.0b
(+.f64 (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 (*.f64 (sqrt.f64 g) (sqrt.f64 g)))) (fma.f64 (neg.f64 (sqrt.f64 g)) (sqrt.f64 g) (*.f64 (sqrt.f64 g) (sqrt.f64 g))))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
38.9b
(+.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)))))))
45.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
57.0b
(+.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 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
38.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (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 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 1/2 (/.f64 (*.f64 h h) g)))) (cbrt.f64 a)))
60.9b
(+.f64 (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (fma.f64 2 (log.f64 h) (log.f64 (/.f64 -1/2 (*.f64 g a))))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
50.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h)))))) (cbrt.f64 a)))
37.6b
(+.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)))
51.1b
(+.f64 (/.f64 (cbrt.f64 (fma.f64 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) -1/8 (*.f64 -1/2 (/.f64 (*.f64 h h) g)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
40.7b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.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))))) 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.2b
(+.f64 (/.f64 (cbrt.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)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.8b
(+.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)))
55.3b
(+.f64 (*.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 -1 g))))) (cbrt.f64 1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) 2)) (cbrt.f64 (/.f64 (cbrt.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)))
Compiler

Compiled 16412 to 7109 computations (56.7% saved)

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.0b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
32.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune3.1s (21.2%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New6442646
Fresh22224
Picked101
Done000
Total64724671
Error
33.2b
Counts
671 → 24
Alt Table
StatusErrorProgram
35.8b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (exp.f64 (log.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (cbrt.f64 a)))
38.8b
(+.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)))) a)) (cbrt.f64 -1/2)))
48.6b
(+.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))))
49.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 g g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
56.9b
(+.f64 (/.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 g))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
39.0b
(+.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)))
44.5b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.8b
(+.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)))
50.0b
(+.f64 (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)) (neg.f64 (*.f64 (sqrt.f64 g) (sqrt.f64 g)))) (fma.f64 (neg.f64 (sqrt.f64 g)) (sqrt.f64 g) (*.f64 (sqrt.f64 g) (sqrt.f64 g))))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
38.9b
(+.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)))))))
45.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
57.0b
(+.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 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (cbrt.f64 a)))
40.7b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.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))))) g)) (cbrt.f64 (*.f64 2 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 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 1/2 (/.f64 (*.f64 h h) g)))) (cbrt.f64 a)))
60.9b
(+.f64 (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (fma.f64 2 (log.f64 h) (log.f64 (/.f64 -1/2 (*.f64 g a))))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.3b
(+.f64 (/.f64 (cbrt.f64 (exp.f64 (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (cbrt.f64 a)))
35.8b
(+.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)))
50.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h)))))) (cbrt.f64 a)))
37.6b
(+.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)))
51.1b
(+.f64 (/.f64 (cbrt.f64 (fma.f64 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) -1/8 (*.f64 -1/2 (/.f64 (*.f64 h h) g)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 -1/2 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 a)))
38.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
40.2b
(+.f64 (/.f64 (cbrt.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)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
55.3b
(+.f64 (*.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 -1 g))))) (cbrt.f64 1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) 2)) (cbrt.f64 (/.f64 (cbrt.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)))
Compiler

Compiled 44124 to 12694 computations (71.2% saved)

regimes1.7s (11.4%)

Accuracy

Total 0.9b remaining (2.7%)

Threshold costs 0.9b (2.7%)

Counts
163 → 2
Compiler

Compiled 47905 to 27305 computations (43% saved)

bsearch100.0ms (0.7%)

Steps
ItersRangePoint
8
8.204230165610287e-175
1.3241112489690197e-171
1.302569325886384e-171
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.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
03594
15294
26194
36894
47294
57394
67394

end494.0ms (3.3%)

Compiler

Compiled 1198 to 652 computations (45.6% saved)

Profiling

Loading profile data...