Details

Time bar (total: 12.5s)

analyze650.0ms (5.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.0s (24.1%)

Results
2.6s7806×body256valid
243.0ms1308×body128invalid
79.0ms450×body128valid
Compiler

Compiled 122 to 71 computations (41.8% saved)

simplify202.0ms (1.6%)

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

Compiled 219 to 116 computations (47% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
6.2b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
9.4b
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
27.9b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.4s (10.9%)

Counts
4 → 120
Calls

4 calls:

749.0ms
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
605.0ms
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
11.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
6.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

rewrite23.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary64
11×cbrt-prod_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
times-frac_binary64
Counts
4 → 68
Calls

4 calls:

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

simplify113.0ms (0.9%)

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

prune694.0ms (5.5%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New30620326
Fresh101
Picked101
Done000
Total30820328
Error
30.0b
Counts
328 → 20
Alt Table
StatusErrorProgram
42.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
32.5b
(+.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)))
46.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
53.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 -1/2 (/.f64 (pow.f64 h 2) a))))))))
48.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (-.f64 g (*.f64 1/2 (/.f64 (pow.f64 h 2) g))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
49.2b
(+.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))))))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
33.7b
(+.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)))
49.6b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 1/2) (exp.f64 (*.f64 1/3 (+.f64 (log.f64 (+.f64 (sqrt.f64 (-.f64 (pow.f64 g 2) (pow.f64 h 2))) g)) (log.f64 (/.f64 -1 a)))))))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 1 g)))))))
33.3b
(+.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)))
35.0b
(+.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)))
41.8b
(+.f64 (pow.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)) 1/3) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
33.2b
(+.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)))
35.2b
(+.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)))))
52.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
48.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 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
40.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 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
32.5b
(+.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)))
Compiler

Compiled 17469 to 9079 computations (48% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
6.2b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.9b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series11.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

rewrite5.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-log-exp_binary64
fma-def_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
1 → 17
Calls

1 calls:

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

simplify57.0ms (0.5%)

Algorithm
egg-herbie
Rules
675×fma-neg_binary64
456×times-frac_binary64
261×fma-def_binary64
235×associate-/r*_binary64
230×associate-/l*_binary64
Counts
41 → 65
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
098894
1295845
2829805
33779801
44982801

prune1.1s (9%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New3097316
Fresh71219
Picked101
Done000
Total31719336
Error
29.6b
Counts
336 → 19
Alt Table
StatusErrorProgram
48.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 g g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
38.9b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
42.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
32.5b
(+.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)))
44.3b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.2b
(+.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)))))
49.2b
(+.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))))))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
33.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.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 (cbrt.f64 (*.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
50.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (fma.f64 1/2 (/.f64 (*.f64 h h) g) (fma.f64 1/8 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) (*.f64 1/16 (/.f64 (pow.f64 h 6) (pow.f64 g 5))))) a) -1/2)))
46.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 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) a) -1/2)))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 1 g)))))))
33.3b
(+.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)))
33.2b
(+.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)))
52.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
46.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
33.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 (expm1.f64 (log1p.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
Compiler

Compiled 15709 to 7631 computations (51.4% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
6.2b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.9b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune1.1s (8.8%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New3142316
Fresh11718
Picked101
Done000
Total31619335
Error
29.6b
Counts
335 → 19
Alt Table
StatusErrorProgram
48.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 g g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
38.9b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.2b
(+.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)))))
46.2b
(+.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 1/2 (/.f64 (*.f64 h h) g)) a) -1/2)))
44.3b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (neg.f64 g) 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)))
35.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
49.2b
(+.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))))))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
33.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.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 (cbrt.f64 (*.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
50.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (fma.f64 1/2 (/.f64 (*.f64 h h) g) (fma.f64 1/8 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) (*.f64 1/16 (/.f64 (pow.f64 h 6) (pow.f64 g 5))))) a) -1/2)))
46.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 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) a) -1/2)))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 1 g)))))))
33.3b
(+.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)))
42.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
33.2b
(+.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)))
52.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
46.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
33.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 (expm1.f64 (log1p.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
Compiler

Compiled 15703 to 7635 computations (51.4% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
4.2b
(-.f64 (*.f64 g g) (*.f64 h h))
9.4b
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
27.9b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

prune1.1s (8.8%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New3126318
Fresh31518
Picked101
Done000
Total31621337
Error
29.6b
Counts
337 → 21
Alt Table
StatusErrorProgram
48.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 g g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
33.3b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) -1/2)) (cbrt.f64 a)))
38.9b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
48.6b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (/.f64 (*.f64 h h) g)) -1/2)) (cbrt.f64 a)))
33.7b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (sqrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) -1/2)) (cbrt.f64 a)))
35.2b
(+.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)))))
46.2b
(+.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 1/2 (/.f64 (*.f64 h h) g)) a) -1/2)))
43.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 g) -1/2)) (cbrt.f64 a)))
49.2b
(+.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))))))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (/.f64 2 a)) (log.f64 g)))))
33.7b
(+.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) 2)) (cbrt.f64 (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.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 (cbrt.f64 (*.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
50.1b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (fma.f64 1/2 (/.f64 (*.f64 h h) g) (fma.f64 1/8 (/.f64 (pow.f64 h 4) (pow.f64 g 3)) (*.f64 1/16 (/.f64 (pow.f64 h 6) (pow.f64 g 5))))) a) -1/2)))
56.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 1 g)))))))
33.3b
(+.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.4b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (exp.f64 (log.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) -1/2)) (cbrt.f64 a)))
50.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 (exp.f64 (log.f64 (+.f64 g (hypot.f64 (sqrt.f64 (neg.f64 (*.f64 h h))) g)))) -1/2)) (cbrt.f64 a)))
42.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
52.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))))
46.1b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
Compiler

Compiled 15272 to 7375 computations (51.7% saved)

regimes2.4s (19.5%)

Accuracy

Total 0.6b remaining (2%)

Threshold costs 0.6b (2%)

Counts
243 → 2
Compiler

Compiled 66658 to 39149 computations (41.3% saved)

bsearch112.0ms (0.9%)

Steps
ItersRangePoint
10
-5.213151750705551e-150
-5.423759964273661e-160
-5.469826934247915e-160
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.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
03590
14890
25890
36490
46790
56790

end426.0ms (3.4%)

Compiler

Compiled 1051 to 566 computations (46.1% saved)

Profiling

Loading profile data...