Details

Time bar (total: 11.7s)

analyze591.0ms (5%)

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

Results
2.5s7799×body256valid
203.0ms1246×body128invalid
96.0ms457×body128valid
Compiler

Compiled 122 to 71 computations (41.8% saved)

simplify33.0ms (0.3%)

Algorithm
egg-herbie
Rules
725×fma-neg_binary64
355×fma-def_binary64
203×distribute-rgt-in_binary64
194×associate-/l*_binary64
192×div-sub_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02052
15450
215450
347848
4127948
5258148
6382348
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
36.6b
Counts
3 → 1
Alt Table
StatusErrorProgram
36.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
Compiler

Compiled 139 to 70 computations (49.6% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
7.7b
(cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))
10.5b
(cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))
30.4b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series279.0ms (2.4%)

Counts
4 → 60
Calls

4 calls:

173.0ms
(cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))
86.0ms
(cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))
12.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
8.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

rewrite48.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
196×add-sqr-sqrt_binary64
189×add-cbrt-cube_binary64
189×log1p-expm1-u_binary64
189×expm1-log1p-u_binary64
185×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01868
140868
Stop Event
node limit
Counts
4 → 115
Calls

4 calls:

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

simplify54.0ms (0.5%)

Algorithm
egg-herbie
Rules
854×times-frac_binary64
533×cancel-sign-sub-inv_binary64
274×fma-neg_binary64
184×associate-*r*_binary64
138×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02002269
16392190
223292168
Stop Event
node limit
Counts
175 → 183

prune663.0ms (5.7%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New28117298
Fresh000
Picked101
Done000
Total28217299
Error
32.7b
Counts
299 → 17
Alt Table
StatusErrorProgram
34.9b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
54.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (/.f64 (sqrt.f64 (-.f64 (pow.f64 g 6) (pow.f64 h 6))) (sqrt.f64 (+.f64 (pow.f64 g 4) (+.f64 (pow.f64 h 4) (pow.f64 (*.f64 g h) 2)))))) (/.f64 -1/2 a))))
43.3b
(+.f64 (pow.f64 (pow.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)) 1/6) 2) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2) 1/3)) (/.f64 -1/2 a))))
37.2b
(+.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)))) (/.f64 -1/2 a))))
36.7b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
34.9b
(+.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 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
44.4b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) 1) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
44.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
46.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 g a)))))
51.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (neg.f64 g)) (/.f64 -1/2 a))))
40.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (/.f64 -1/2 a))))
34.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
46.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (cbrt.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2))) (/.f64 -1/2 a))))
43.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
41.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) (/.f64 -1/2 a))))
Compiler

Compiled 14179 to 6858 computations (51.6% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
10.5b
(cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))
30.4b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series14.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

rewrite48.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
747×fma-def_binary64
325×fma-neg_binary64
166×expm1-udef_binary64
166×log1p-udef_binary64
150×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0815
119015
2281614
Stop Event
node limit
Counts
1 → 96
Calls

1 calls:

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

simplify42.0ms (0.4%)

Algorithm
egg-herbie
Rules
447×distribute-neg-frac_binary64
443×times-frac_binary64
231×associate-/l*_binary64
229×fma-def_binary64
215×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
083618
1257598
2841584
34127584
Stop Event
node limit
Counts
120 → 136

prune1.4s (11.6%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New3897396
Fresh11516
Picked101
Done000
Total39122413
Error
31.3b
Counts
413 → 22
Alt Table
StatusErrorProgram
34.9b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
54.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (/.f64 (sqrt.f64 (-.f64 (pow.f64 g 6) (pow.f64 h 6))) (sqrt.f64 (+.f64 (pow.f64 g 4) (+.f64 (pow.f64 h 4) (pow.f64 (*.f64 g h) 2)))))) (/.f64 -1/2 a))))
37.2b
(+.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
38.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) -1/2)) (cbrt.f64 a)))
45.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
44.4b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) 1) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
39.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) -1/2)) (cbrt.f64 a)))
46.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (cbrt.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2))) (/.f64 -1/2 a))))
54.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (fma.f64 (pow.f64 (cbrt.f64 g) 2) (neg.f64 (cbrt.f64 g)) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2) 1/3)) (/.f64 -1/2 a))))
42.3b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g g) -1/2)) (cbrt.f64 a)))
43.3b
(+.f64 (pow.f64 (pow.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)) 1/6) 2) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
56.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (log.f64 (exp.f64 (-.f64 (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h)))) g))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)))) (/.f64 -1/2 a))))
36.7b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
34.9b
(+.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 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
44.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
46.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 g a)))))
51.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (neg.f64 g)) (/.f64 -1/2 a))))
60.3b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
43.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
41.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) (/.f64 -1/2 a))))
Compiler

Compiled 18288 to 8078 computations (55.8% saved)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
7.7b
(cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))
30.4b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune1.6s (13.3%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New4004404
Fresh21921
Picked011
Done000
Total40224426
Error
31.3b
Counts
426 → 24
Alt Table
StatusErrorProgram
53.2b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 g) 2)) (cbrt.f64 g) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
34.9b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
54.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (/.f64 (sqrt.f64 (-.f64 (pow.f64 g 6) (pow.f64 h 6))) (sqrt.f64 (+.f64 (pow.f64 g 4) (+.f64 (pow.f64 h 4) (pow.f64 (*.f64 g h) 2)))))) (/.f64 -1/2 a))))
37.2b
(+.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
38.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) -1/2)) (cbrt.f64 a)))
45.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
47.4b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (/.f64 -1/2 g) (*.f64 h h)))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
34.9b
(+.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 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
44.4b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) 1) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
39.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) -1/2)) (cbrt.f64 a)))
41.8b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (-.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3) g))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
46.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 g a)))))
46.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (cbrt.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2))) (/.f64 -1/2 a))))
54.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (fma.f64 (pow.f64 (cbrt.f64 g) 2) (neg.f64 (cbrt.f64 g)) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2) 1/3)) (/.f64 -1/2 a))))
42.3b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g g) -1/2)) (cbrt.f64 a)))
43.3b
(+.f64 (pow.f64 (pow.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)) 1/6) 2) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
56.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (log.f64 (exp.f64 (-.f64 (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h)))) g))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
60.8b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (fma.f64 (neg.f64 (sqrt.f64 g)) (sqrt.f64 g) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
41.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) (/.f64 -1/2 a))))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)))) (/.f64 -1/2 a))))
36.7b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
44.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
60.3b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
Compiler

Compiled 18959 to 8560 computations (54.8% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.5b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.8b
(-.f64 (*.f64 g g) (*.f64 h h))
7.7b
(cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))
30.4b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune1.8s (15%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New4013404
Fresh22022
Picked101
Done011
Total40424428
Error
31.3b
Counts
428 → 24
Alt Table
StatusErrorProgram
34.9b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
54.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (/.f64 (sqrt.f64 (-.f64 (pow.f64 g 6) (pow.f64 h 6))) (sqrt.f64 (+.f64 (pow.f64 g 4) (+.f64 (pow.f64 h 4) (pow.f64 (*.f64 g h) 2)))))) (/.f64 -1/2 a))))
37.2b
(+.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
38.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) -1/2)) (cbrt.f64 a)))
45.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (*.f64 -1/2 (/.f64 (pow.f64 h 2) g)))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
44.4b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) 1) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
39.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) -1/2)) (cbrt.f64 a)))
41.8b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (-.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3) g))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
46.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 g a)))))
45.3b
(+.f64 (*.f64 (cbrt.f64 (*.f64 g -2)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
46.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (cbrt.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2))) (/.f64 -1/2 a))))
54.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (fma.f64 (pow.f64 (cbrt.f64 g) 2) (neg.f64 (cbrt.f64 g)) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2) 1/3)) (/.f64 -1/2 a))))
42.3b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g g) -1/2)) (cbrt.f64 a)))
43.3b
(+.f64 (pow.f64 (pow.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)) 1/6) 2) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
56.5b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (log.f64 (exp.f64 (-.f64 (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h)))) g))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
60.8b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (fma.f64 (neg.f64 (sqrt.f64 g)) (sqrt.f64 g) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
41.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)) (/.f64 -1/2 a))))
48.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h)))) (/.f64 -1/2 a))))
36.7b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) a))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
47.4b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (/.f64 -1/2 g) (*.f64 h h)))) (cbrt.f64 a)) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
43.3b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (exp.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
53.2b
(+.f64 (*.f64 (cbrt.f64 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 g) 2)) (cbrt.f64 g) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h)))))) (cbrt.f64 (/.f64 1/2 a))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a))))
60.3b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (hypot.f64 g (sqrt.f64 (*.f64 h (neg.f64 h))))))) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
Compiler

Compiled 18070 to 8276 computations (54.2% saved)

regimes1.8s (15.4%)

Accuracy

Total 0.5b remaining (1.7%)

Threshold costs 0.5b (1.7%)

Counts
146 → 2
Compiler

Compiled 42743 to 25990 computations (39.2% saved)

bsearch107.0ms (0.9%)

Steps
ItersRangePoint
10
3.436854016386436e-173
2.050578750484223e-162
2.031160799889324e-162
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
03690
15090
25890
36290
46490
Stop Event
saturated

end438.0ms (3.7%)

Compiler

Compiled 1034 to 631 computations (39% saved)

Profiling

Loading profile data...