Details

Time bar (total: 18.4s)

analyze581.0ms (3.2%)

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)

sample3.3s (18.1%)

Results
3.0s7809×body256valid
213.0ms1253×body128invalid
89.0ms447×body128valid
Compiler

Compiled 122 to 71 computations (41.8% saved)

simplify191.0ms (1%)

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
35.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
35.7b
(+.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.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 (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.5b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
7.6b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
29.2b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.6s (8.7%)

Counts
4 → 120
Calls

4 calls:

843.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
735.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
17.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
8.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

rewrite31.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
10×cbrt-div_binary64
add-sqr-sqrt_binary64
add-log-exp_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
4 → 67
Calls

4 calls:

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

simplify118.0ms (0.6%)

Algorithm
egg-herbie
Rules
554×times-frac_binary64
313×associate-*l*_binary64
313×fma-def_binary64
303×associate-/r*_binary64
280×associate-/l*_binary64
Counts
187 → 252
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05277243
115496993
251426993

prune805.0ms (4.4%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New32219341
Fresh101
Picked101
Done000
Total32419343
Error
30.3b
Counts
343 → 19
Alt Table
StatusErrorProgram
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
56.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
55.8b
(+.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
50.2b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.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)))))))
43.7b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3)))) (cbrt.f64 (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
51.7b
(+.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
41.5b
(+.f64 (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a)))) (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
50.0b
(+.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
49.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (*.f64 g g) (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))))
44.4b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3))) (cbrt.f64 (*.f64 (*.f64 2 a) (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
34.3b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
43.7b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (neg.f64 g) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3)))) (cbrt.f64 (fma.f64 g g (fma.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (-.f64 (*.f64 g g) (*.f64 h h)))))))
52.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.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 (pow.f64 h 2) a))))))))
32.7b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
34.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
52.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
42.1b
(+.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) (*.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)))))))))
35.8b
(+.f64 (cbrt.f64 (*.f64 (*.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))))))) (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)))))))
32.7b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
Compiler

Compiled 20114 to 10692 computations (46.8% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.2b
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
7.5b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
29.2b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series17.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

17.0ms
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))

rewrite24.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
70×prod-diff_binary64
51×*-un-lft-identity_binary64
51×add-sqr-sqrt_binary64
47×add-cube-cbrt_binary64
45×sqrt-prod_binary64
Counts
1 → 106
Calls

1 calls:

10.0ms
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))

simplify121.0ms (0.7%)

Algorithm
egg-herbie
Rules
921×times-frac_binary64
769×fma-neg_binary64
618×fma-def_binary64
186×cancel-sign-sub-inv_binary64
121×sub-neg_binary64
Counts
130 → 152
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02105855
14863730
214642640
343792640
448772640

prune1.6s (8.9%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New39913412
Fresh11718
Picked101
Done000
Total41120431
Error
29.7b
Counts
431 → 20
Alt Table
StatusErrorProgram
50.1b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
53.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (fma.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g)) (neg.f64 (cbrt.f64 g)) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
42.1b
(+.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) (*.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)))))))))
43.7b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3)))) (cbrt.f64 (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
51.7b
(+.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
32.8b
(+.f64 (cbrt.f64 (*.f64 (*.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))))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
36.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.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)))))))))
32.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g)) (neg.f64 (cbrt.f64 g)) (neg.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (fma.f64 (neg.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))))
31.5b
(+.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 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
31.5b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
44.4b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3))) (cbrt.f64 (*.f64 (*.f64 2 a) (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
58.6b
(+.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))))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -2 g))))
52.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
48.4b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))))
38.5b
(+.f64 (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a)))) (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
59.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (fma.f64 (sqrt.f64 (neg.f64 g)) (sqrt.f64 (neg.f64 g)) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
48.9b
(+.f64 (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 a)) (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
32.7b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
Compiler

Compiled 23975 to 10195 computations (57.5% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.2b
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
29.2b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series17.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

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

simplify123.0ms (0.7%)

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 (9.5%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New4169425
Fresh81119
Picked101
Done000
Total42520445
Error
29.6b
Counts
445 → 20
Alt Table
StatusErrorProgram
35.8b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (+.f64 (-.f64 (neg.f64 g) (*.f64 (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) 0))))
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -2 g))))
31.6b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (+.f64 (fma.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g) (neg.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (fma.f64 (neg.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))))
44.8b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
42.1b
(+.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) (*.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)))))))))
32.0b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
43.7b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3)))) (cbrt.f64 (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
46.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 (/.f64 (*.f64 h h) g) -1/2))))
31.6b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (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))) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
53.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (fma.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
59.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (fma.f64 (sqrt.f64 (neg.f64 g)) (sqrt.f64 (neg.f64 g)) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
31.5b
(+.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 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
44.4b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3))) (cbrt.f64 (*.f64 (*.f64 2 a) (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
49.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
46.3b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (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)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
32.7b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
48.4b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))))
38.5b
(+.f64 (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a)))) (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
48.9b
(+.f64 (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 a)) (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
Compiler

Compiled 22534 to 8392 computations (62.8% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.2b
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
29.2b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune1.6s (8.7%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New4214425
Fresh11819
Picked101
Done000
Total42322445
Error
29.5b
Counts
445 → 22
Alt Table
StatusErrorProgram
35.8b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (+.f64 (-.f64 (neg.f64 g) (*.f64 (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) 0))))
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -2 g))))
31.6b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (+.f64 (fma.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g) (neg.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))) (fma.f64 (neg.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))))
53.7b
(+.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 a)) (cbrt.f64 (fma.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
44.8b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
42.1b
(+.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) (*.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)))))))))
32.0b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
43.7b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3)))) (cbrt.f64 (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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.5b
(+.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))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
46.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 (/.f64 (*.f64 h h) g) -1/2))))
31.6b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (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))) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
53.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (fma.f64 (neg.f64 (*.f64 (cbrt.f64 g) (cbrt.f64 g))) (cbrt.f64 g) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
59.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (fma.f64 (sqrt.f64 (neg.f64 g)) (sqrt.f64 (neg.f64 g)) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
31.6b
(+.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))) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (*.f64 2 a))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
49.9b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
46.3b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (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)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
32.7b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
42.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
48.4b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))))
44.4b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3) (pow.f64 g 3))) (cbrt.f64 (*.f64 (*.f64 2 a) (fma.f64 g g (fma.f64 (+.f64 h g) (-.f64 g h) (*.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)))))))
48.9b
(+.f64 (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 a)) (log.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))))) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
59.7b
(+.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 a)) (cbrt.f64 (fma.f64 (sqrt.f64 (neg.f64 g)) (sqrt.f64 (neg.f64 g)) (neg.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g))))))
Compiler

Compiled 21622 to 7920 computations (63.4% saved)

regimes5.8s (31.3%)

Accuracy

Total 0.8b remaining (2.6%)

Threshold costs 0.8b (2.6%)

Counts
456 → 2
Compiler

Compiled 170303 to 88287 computations (48.2% saved)

bsearch149.0ms (0.8%)

Steps
ItersRangePoint
12
-7.445508625232652e-116
-1.4246772943360914e-159
-1.4448509116500396e-159
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03795
15795
26495
36995
47195
57095

end463.0ms (2.5%)

Compiler

Compiled 1246 to 658 computations (47.2% saved)

Profiling

Loading profile data...