Details

Time bar (total: 25.7s)

analyze672.0ms (2.6%)

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)

sample74.0ms (0.3%)

Algorithm
intervals
Results
57.0ms249×body256valid
4.0ms40×body128nan
1.0msbody128valid
Compiler

Compiled 84 to 50 computations (40.5% saved)

simplify200.0ms (0.8%)

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

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
34.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
34.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)))))))
34.7b
(+.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)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.4b
(-.f64 (*.f64 g g) (*.f64 h h))
5.8b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
8.9b
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
27.3b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.9s (7.6%)

Counts
4 → 120
Calls

4 calls:

1.2s
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
738.0ms
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
17.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
15.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

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

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

simplify286.0ms (1.1%)

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

prune1.3s (5%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New31016326
Fresh011
Picked101
Done000
Total31117328
Error
29.1b
Counts
328 → 17
Alt Table
StatusErrorProgram
50.6b
(+.f64 (*.f64 (cbrt.f64 1/2) (pow.f64 (exp.f64 1/3) (-.f64 (log.f64 (*.f64 -1/2 (/.f64 (*.f64 h h) a))) (log.f64 g)))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.0b
(+.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)))
49.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (neg.f64 g)) a) -1/2)))
34.7b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
33.4b
(+.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)))
46.8b
(+.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 (sqrt.f64 (-.f64 (pow.f64 g 2) (pow.f64 h 2))) g)) (log.f64 a))))))
34.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)))))))
32.0b
(+.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)))
34.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)))) a)) (cbrt.f64 -1/2)))
40.9b
(+.f64 (exp.f64 (log.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)))
32.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)))
34.7b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (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)))
32.9b
(+.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)))
34.9b
(+.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)))))
60.5b
(+.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)))
54.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 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 17171 to 8875 computations (48.3% saved)

localize35.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.4b
(-.f64 (*.f64 g g) (*.f64 h h))
5.8b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.3b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series32.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

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

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

simplify196.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

prune2.3s (8.8%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New3415346
Fresh31316
Picked101
Done000
Total34518363
Error
28.5b
Counts
363 → 18
Alt Table
StatusErrorProgram
49.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (neg.f64 g)) a) -1/2)))
34.7b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
33.4b
(+.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.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)))))))
46.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 g (neg.f64 g)) a) -1/2)))
34.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)))) a)) (cbrt.f64 -1/2)))
40.9b
(+.f64 (exp.f64 (log.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.3b
(+.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))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.9b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
38.2b
(+.f64 (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h 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))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.0b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.0b
(+.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)))
32.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)))
43.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -2 g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
34.7b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (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)))
34.9b
(+.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)))))
60.5b
(+.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)))
Compiler

Compiled 17216 to 7958 computations (53.8% saved)

localize38.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.4b
(-.f64 (*.f64 g g) (*.f64 h h))
5.8b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.3b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune2.3s (9.1%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New3451346
Fresh01717
Picked101
Done000
Total34618364
Error
28.5b
Counts
364 → 18
Alt Table
StatusErrorProgram
49.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (neg.f64 g)) a) -1/2)))
34.7b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
33.4b
(+.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.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)))))))
46.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 g (neg.f64 g)) a) -1/2)))
34.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)))) a)) (cbrt.f64 -1/2)))
40.9b
(+.f64 (exp.f64 (log.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.3b
(+.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))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.9b
(+.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)))
46.3b
(+.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 (neg.f64 g)) a) -1/2)))
38.2b
(+.f64 (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h 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))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.0b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.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)))
43.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -2 g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
34.7b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (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)))
34.9b
(+.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)))))
60.5b
(+.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)))
Compiler

Compiled 17204 to 7960 computations (53.7% saved)

localize119.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.4b
(-.f64 (*.f64 g g) (*.f64 h h))
3.4b
(cbrt.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))
5.8b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.3b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.4s (5.5%)

Counts
1 → 36
Calls

1 calls:

1.4s
(cbrt.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))

rewrite28.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
49×cbrt-prod_binary64
29×add-sqr-sqrt_binary64
27×times-frac_binary64
23×*-un-lft-identity_binary64
17×add-cube-cbrt_binary64
Counts
1 → 42
Calls

1 calls:

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

simplify228.0ms (0.9%)

Algorithm
egg-herbie
Rules
794×fma-def_binary64
281×fma-neg_binary64
228×cancel-sign-sub-inv_binary64
208×unswap-sqr_binary64
190×associate-*r*_binary64
Counts
78 → 117
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03014197
17504037
225233620
348123598
449383598

prune4.4s (17%)

Pruning

20 alts after pruning (19 fresh and 1 done)

PrunedKeptTotal
New5433546
Fresh11617
Picked011
Done000
Total54420564
Error
28.5b
Counts
564 → 20
Alt Table
StatusErrorProgram
49.0b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (neg.f64 g)) a) -1/2)))
34.7b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
32.1b
(+.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)) (*.f64 (cbrt.f64 (/.f64 (cbrt.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)))) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (cbrt.f64 (/.f64 (cbrt.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 a))))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
33.4b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.4b
(+.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)) (log.f64 (exp.f64 (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)))
34.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)))))))
46.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 g (neg.f64 g)) a) -1/2)))
48.3b
(+.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))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.9b
(+.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)))
46.3b
(+.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 (neg.f64 g)) a) -1/2)))
38.2b
(+.f64 (/.f64 (cbrt.f64 (+.f64 (fma.f64 (sqrt.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h 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))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.0b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) g))) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.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)))
43.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 -2 g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
63.2b
(+.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)) (*.f64 (cbrt.f64 (/.f64 1 a)) (*.f64 (pow.f64 h 2/9) (pow.f64 (/.f64 -1/2 g) 1/9)))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
34.7b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (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)))
34.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)))) a)) (cbrt.f64 -1/2)))
34.9b
(+.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)))))
60.5b
(+.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)))
Compiler

Compiled 40001 to 13107 computations (67.2% saved)

regimes4.8s (18.5%)

Accuracy

Total 0.8b remaining (2.7%)

Threshold costs 0.8b (2.7%)

Counts
197 → 2
Compiler

Compiled 60295 to 31911 computations (47.1% saved)

bsearch246.0ms (1%)

Steps
ItersRangePoint
10
3.36910828502757e-169
4.5003385187923873e-159
8.490280041630018e-160
Compiler

Compiled 4 to 3 computations (25% saved)

simplify12.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
03395
14795
25795
36395
46695
56695

end2.0ms (0%)

Compiler

Compiled 64 to 34 computations (46.9% saved)

sample5.1s (19.7%)

Algorithm
intervals
Results
3.3s7586×body256valid
260.0ms1247×body128nan
89.0ms414×body128valid
Compiler

Compiled 1081 to 534 computations (50.6% saved)

Profiling

Loading profile data...