Details

Time bar (total: 13.9s)

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

sample132.0ms (1%)

Algorithm
intervals
Results
54.0ms243×body256valid
4.0ms42×body128nan
1.0ms13×body128valid
Compiler

Compiled 84 to 50 computations (40.5% saved)

simplify195.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
33.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
33.2b
(+.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)))))))
33.2b
(+.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)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
6.7b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
8.8b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
26.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.7s (12.4%)

Counts
4 → 120
Calls

4 calls:

912.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
777.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
18.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
8.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

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

14.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
10.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))

simplify120.0ms (0.9%)

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

prune834.0ms (6%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New32021341
Fresh101
Picked101
Done000
Total32221343
Error
27.7b
Counts
343 → 21
Alt Table
StatusErrorProgram
50.5b
(+.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)))))))
33.2b
(+.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)))))))
37.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.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)))))))
40.0b
(+.f64 (exp.f64 (log.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)))))))
41.4b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (exp.f64 (log.f64 (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.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) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
38.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 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
41.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) (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
39.6b
(+.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)))))))
46.8b
(+.f64 (log.f64 (exp.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)))))))
54.6b
(+.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 2 a)) (log.f64 (/.f64 1 g)))))))
31.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)))))))
55.0b
(+.f64 (fma.f64 1/12 (*.f64 (/.f64 (cbrt.f64 1/2) (*.f64 g g)) (*.f64 (*.f64 h h) (pow.f64 (exp.f64 1/3) (-.f64 (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a))) (log.f64 g))))) (fma.f64 13/648 (*.f64 (/.f64 (cbrt.f64 1/2) (pow.f64 g 6)) (*.f64 (pow.f64 h 6) (pow.f64 (exp.f64 1/3) (-.f64 (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a))) (log.f64 g))))) (fma.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))) (*.f64 5/144 (*.f64 (/.f64 (cbrt.f64 1/2) (pow.f64 g 4)) (*.f64 (pow.f64 h 4) (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.3b
(+.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)))))))))
53.2b
(+.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)))))))
44.3b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (pow.f64 (neg.f64 g) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3)))) (cbrt.f64 (+.f64 (*.f64 (neg.f64 g) (neg.f64 g)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.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)))))))
30.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) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
47.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) (neg.f64 g)))))
30.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
54.6b
(+.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)))))
31.2b
(+.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)))))))
Compiler

Compiled 20354 to 10834 computations (46.8% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
6.7b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
26.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series21.0ms (0.2%)

Counts
1 → 24
Calls

1 calls:

21.0ms
(+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))

rewrite10.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
10×fma-def_binary64
*-un-lft-identity_binary64
add-log-exp_binary64
distribute-rgt-neg-in_binary64
add-sqr-sqrt_binary64
Counts
1 → 27
Calls

1 calls:

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

simplify62.0ms (0.4%)

Algorithm
egg-herbie
Rules
844×times-frac_binary64
659×fma-neg_binary64
393×fma-def_binary64
342×associate-/l*_binary64
294×associate-/r*_binary64
Counts
51 → 75
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01161022
1344933
21086888
34683888
45106888

prune1.1s (8.2%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New32213335
Fresh13720
Picked101
Done000
Total33620356
Error
27.0b
Counts
356 → 20
Alt Table
StatusErrorProgram
28.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
44.2b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
36.9b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
35.3b
(+.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) (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (cbrt.f64 (*.f64 2 a))))
45.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) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
51.3b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
38.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 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
41.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 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))))
46.8b
(+.f64 (log.f64 (exp.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)))))))
54.6b
(+.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)))))
36.2b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.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))))
47.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) (neg.f64 g))) (cbrt.f64 (*.f64 2 a))))
44.3b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (pow.f64 (neg.f64 g) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3)))) (cbrt.f64 (+.f64 (*.f64 (neg.f64 g) (neg.f64 g)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.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)))))))
30.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) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
37.3b
(+.f64 (exp.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
31.1b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (expm1.f64 (log1p.f64 (+.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))))
53.2b
(+.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)))))))
30.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.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))))
28.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
51.1b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) g)) (fma.f64 1/8 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) (fma.f64 1/16 (/.f64 (pow.f64 h 6) (pow.f64 g 5)) (*.f64 5/128 (/.f64 (pow.f64 h 8) (pow.f64 g 7)))))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
Compiler

Compiled 18008 to 8775 computations (51.3% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
1.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
26.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series33.0ms (0.2%)

Counts
2 → 48
Calls

2 calls:

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

rewrite37.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
91×prod-diff_binary64
72×add-sqr-sqrt_binary64
70×*-un-lft-identity_binary64
64×add-cube-cbrt_binary64
62×sqrt-prod_binary64
Counts
2 → 153
Calls

2 calls:

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

simplify183.0ms (1.3%)

Algorithm
egg-herbie
Rules
776×fma-neg_binary64
276×div-sub_binary64
221×distribute-rgt-in_binary64
173×distribute-rgt-neg-in_binary64
166×fma-def_binary64
Counts
201 → 212
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02615607
15494159
219913718
345863718
447793718
548443718

prune1.5s (10.5%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New37812390
Fresh61319
Picked101
Done000
Total38525410
Error
26.9b
Counts
410 → 25
Alt Table
StatusErrorProgram
28.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
45.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 (neg.f64 g) (neg.f64 g))) (cbrt.f64 (*.f64 2 a))))
45.6b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
44.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
45.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) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
51.3b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
54.7b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
38.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 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
41.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 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))))
29.9b
(+.f64 (/.f64 (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)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
46.8b
(+.f64 (log.f64 (exp.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)))))))
54.6b
(+.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)))))
36.2b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.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))))
38.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 (neg.f64 g) (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (cbrt.f64 (*.f64 2 a))))
30.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.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))))
51.8b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (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)))) (cbrt.f64 (*.f64 2 a))))
60.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (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)))) (cbrt.f64 (*.f64 2 a))))
54.5b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
44.3b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (pow.f64 (neg.f64 g) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3)))) (cbrt.f64 (+.f64 (*.f64 (neg.f64 g) (neg.f64 g)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.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)))))))
30.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) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
36.9b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
45.6b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (neg.f64 (*.f64 (sqrt.f64 (-.f64 g h)) (sqrt.f64 (+.f64 g h))))) (fma.f64 (neg.f64 (sqrt.f64 (-.f64 g h))) (sqrt.f64 (+.f64 g h)) (*.f64 (sqrt.f64 (-.f64 g h)) (sqrt.f64 (+.f64 g h)))))) (cbrt.f64 (*.f64 2 a))))
37.3b
(+.f64 (exp.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
29.4b
(+.f64 (/.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
51.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) g)) (fma.f64 1/8 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) (fma.f64 1/16 (/.f64 (pow.f64 h 6) (pow.f64 g 5)) (*.f64 5/128 (/.f64 (pow.f64 h 8) (pow.f64 g 7))))))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
Compiler

Compiled 21422 to 7922 computations (63% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
1.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
26.8b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune1.9s (13.5%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New3846390
Fresh12324
Picked101
Done000
Total38629415
Error
26.9b
Counts
415 → 29
Alt Table
StatusErrorProgram
45.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 (neg.f64 g) (neg.f64 g))) (cbrt.f64 (*.f64 2 a))))
45.6b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
44.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
60.1b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (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)))) (cbrt.f64 (*.f64 2 a))))
51.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 (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)))) (cbrt.f64 (*.f64 2 a))))
36.9b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
45.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 (neg.f64 g) (neg.f64 g))) (cbrt.f64 (*.f64 2 a))))
45.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) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
51.3b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
54.7b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
38.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 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
41.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 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))))
48.0b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g) g)) (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g) g))) (cbrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g) g))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
29.9b
(+.f64 (/.f64 (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)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
46.8b
(+.f64 (log.f64 (exp.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)))))))
54.6b
(+.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)))))
36.2b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.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))))
38.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 (neg.f64 g) (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (cbrt.f64 (*.f64 2 a))))
29.9b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
60.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (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)))) (cbrt.f64 (*.f64 2 a))))
54.5b
(+.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 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
44.3b
(+.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (pow.f64 (neg.f64 g) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3)))) (cbrt.f64 (+.f64 (*.f64 (neg.f64 g) (neg.f64 g)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.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)))))))
30.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) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
35.4b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
30.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.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))))
45.6b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (neg.f64 (*.f64 (sqrt.f64 (-.f64 g h)) (sqrt.f64 (+.f64 g h))))) (fma.f64 (neg.f64 (sqrt.f64 (-.f64 g h))) (sqrt.f64 (+.f64 g h)) (*.f64 (sqrt.f64 (-.f64 g h)) (sqrt.f64 (+.f64 g h)))))) (cbrt.f64 (*.f64 2 a))))
37.3b
(+.f64 (exp.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (/.f64 1/2 a))))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
29.4b
(+.f64 (/.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
51.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) g)) (fma.f64 1/8 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) (fma.f64 1/16 (/.f64 (pow.f64 h 6) (pow.f64 g 5)) (*.f64 5/128 (/.f64 (pow.f64 h 8) (pow.f64 g 7))))))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
Compiler

Compiled 20440 to 7363 computations (64% saved)

regimes2.6s (18.4%)

Accuracy

Total 1.4b remaining (4.6%)

Threshold costs 0b (0%)

Counts
245 → 1
Compiler

Compiled 82585 to 46797 computations (43.3% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01954
13454
24654
35754
46254
56354
66354

end1.0ms (0%)

Compiler

Compiled 37 to 21 computations (43.2% saved)

sample2.8s (20.2%)

Algorithm
intervals
Results
1.7s7568×body256valid
135.0ms1160×body128nan
52.0ms432×body128valid
Compiler

Compiled 1429 to 805 computations (43.7% saved)

Profiling

Loading profile data...