Details

Time bar (total: 15.0s)

analyze589.0ms (3.9%)

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

Results
2.6s7821×body256valid
212.0ms1278×body128invalid
78.0ms435×body128valid
Compiler

Compiled 122 to 71 computations (41.8% saved)

simplify199.0ms (1.3%)

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

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
8.2b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
8.4b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
27.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.2s (8%)

Counts
4 → 120
Calls

4 calls:

606.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
569.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
12.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
9.0ms
(-.f64 (*.f64 g g) (*.f64 h h))

rewrite80.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
622×prod-diff_binary64
200×add-sqr-sqrt_binary64
191×log1p-expm1-u_binary64
191×expm1-log1p-u_binary64
188×add-cbrt-cube_binary64
Counts
4 → 119
Calls

4 calls:

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01972
141668
2452468
3576268

simplify140.0ms (0.9%)

Algorithm
egg-herbie
Rules
350×associate-*r*_binary64
325×times-frac_binary64
274×fma-neg_binary64
249×*-commutative_binary64
243×fma-def_binary64
Counts
239 → 270
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04085670
112715468
245515280
349815280

prune907.0ms (6%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New37515390
Fresh011
Picked101
Done000
Total37616392
Error
29.4b
Counts
392 → 16
Alt Table
StatusErrorProgram
46.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (cbrt.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 3/2))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
35.6b
(+.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)))
56.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)))))))
40.6b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
53.9b
(+.f64 (*.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 2 a)) (log.f64 (/.f64 -1 g))))) (cbrt.f64 1/2)) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
42.4b
(+.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) (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3)))))
52.6b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (exp.f64 (-.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)))))))
40.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 (pow.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 2) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
56.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.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)))))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
52.9b
(+.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)))))))
50.6b
(+.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)))))))
50.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 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)))))))
47.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (+.f64 (sqrt.f64 (-.f64 (pow.f64 g 2) (pow.f64 h 2))) g)) (log.f64 a))))))
47.8b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g))))
41.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) (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
52.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (exp.f64 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))))))))
Compiler

Compiled 21398 to 11661 computations (45.5% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
8.2b
(cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))
8.4b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series1.2s (8.3%)

Counts
2 → 72
Calls

2 calls:

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

rewrite70.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
671×prod-diff_binary64
204×add-sqr-sqrt_binary64
196×log1p-expm1-u_binary64
196×expm1-log1p-u_binary64
193×add-cube-cbrt_binary64
Counts
2 → 48
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01846
140946
2484346
3603046

simplify147.0ms (1%)

Algorithm
egg-herbie
Rules
339×associate-*r*_binary64
293×times-frac_binary64
228×*-commutative_binary64
223×fma-neg_binary64
207×fma-def_binary64
Counts
120 → 154
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03564792
110934604
239604410
349844410
449594410

prune1.1s (7.2%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New38014394
Fresh12315
Picked101
Done000
Total39317410
Error
28.8b
Counts
410 → 17
Alt Table
StatusErrorProgram
41.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 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
35.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) 3))
56.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 2 a)) (log.f64 (/.f64 1 g)))))))
52.9b
(+.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)))
33.1b
(+.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.6b
(+.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 (exp.f64 (-.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)))
47.9b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 -1/2) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (+.f64 (sqrt.f64 (-.f64 (pow.f64 g 2) (pow.f64 h 2))) g)) (log.f64 a))))))
32.1b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
50.6b
(+.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)))
35.2b
(+.f64 (/.f64 1 (cbrt.f64 (/.f64 (*.f64 a 2) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (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 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 (pow.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 2) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
47.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (pow.f64 (/.f64 1 (*.f64 a 2)) 1/3)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.9b
(+.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)))
35.6b
(+.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)))
32.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 a 2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 (*.f64 a 2)))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
52.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (exp.f64 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))))))))
Compiler

Compiled 19590 to 10120 computations (48.3% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
8.4b
(cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))
27.5b
(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)

rewrite61.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
747×fma-def_binary64
443×log-prod_binary64
325×fma-neg_binary64
166×expm1-udef_binary64
166×log1p-udef_binary64
Counts
1 → 99
Calls

1 calls:

59.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0815
118815
2246614
3533214

simplify64.0ms (0.4%)

Algorithm
egg-herbie
Rules
447×distribute-neg-frac_binary64
443×times-frac_binary64
253×div-sub_binary64
232×associate-/l*_binary64
229×fma-def_binary64
Counts
123 → 139
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
083618
1249598
2787584
33540584
44802584
55086584

prune1.5s (9.9%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New4468454
Fresh51116
Picked101
Done000
Total45219471
Error
28.4b
Counts
471 → 19
Alt Table
StatusErrorProgram
34.5b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (pow.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 1/4) 2) g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
41.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 (*.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) a) -1/2)))
35.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) 3))
41.2b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (*.f64 -2 g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.2b
(+.f64 (/.f64 1 (cbrt.f64 (/.f64 (*.f64 a 2) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (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 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 (pow.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 2) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
59.9b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (hypot.f64 g (sqrt.f64 (neg.f64 (*.f64 h h))))) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.5b
(+.f64 (/.f64 (cbrt.f64 (/.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)))))) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (pow.f64 (/.f64 1 (*.f64 a 2)) 1/3)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.9b
(+.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)))
52.9b
(+.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)))
47.7b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 g (sqrt.f64 (neg.f64 (*.f64 h h)))) g))) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.6b
(+.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)))
29.6b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
32.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 a 2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
32.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 (*.f64 a 2)))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
44.7b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (neg.f64 g)) a) -1/2)))
52.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (exp.f64 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))))))))
37.1b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3) g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 21287 to 9633 computations (54.7% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.9b
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
1.2b
(-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)
2.0b
(-.f64 (*.f64 g g) (*.f64 h h))
27.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

series13.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

rewrite56.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
693×fma-def_binary64
435×log-prod_binary64
336×fma-neg_binary64
164×expm1-udef_binary64
164×log1p-udef_binary64
Counts
1 → 51
Calls

1 calls:

54.0ms
(+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0815
118715
2245414
3528014

simplify64.0ms (0.4%)

Algorithm
egg-herbie
Rules
539×fma-neg_binary64
463×times-frac_binary64
439×distribute-neg-frac_binary64
284×div-sub_binary64
235×associate-/r*_binary64
Counts
75 → 90
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
073575
1223557
2661547
33225543
44904543
55238543

prune1.6s (10.6%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New4627469
Fresh41418
Picked101
Done000
Total46721488
Error
28.3b
Counts
488 → 21
Alt Table
StatusErrorProgram
34.5b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (pow.f64 (pow.f64 (-.f64 (*.f64 g g) (*.f64 h h)) 1/4) 2) g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
50.4b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.f64 (cbrt.f64 (*.f64 (fma.f64 (cbrt.f64 g) (pow.f64 (cbrt.f64 g) 2) (hypot.f64 g (sqrt.f64 (neg.f64 (*.f64 h h))))) -1/2)) (cbrt.f64 a)))
35.8b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2))) 3))
30.1b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (*.f64 g g))) -1/2)) (cbrt.f64 a)))
37.9b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.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)))
32.2b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 a 2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
41.2b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (*.f64 -2 g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.2b
(+.f64 (/.f64 1 (cbrt.f64 (/.f64 (*.f64 a 2) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)))) (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 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 (pow.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 2) (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
59.9b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (fma.f64 (sqrt.f64 g) (neg.f64 (sqrt.f64 g)) (hypot.f64 g (sqrt.f64 (neg.f64 (*.f64 h h))))) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
53.5b
(+.f64 (/.f64 (cbrt.f64 (/.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)))))) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
47.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (pow.f64 (/.f64 1 (*.f64 a 2)) 1/3)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
36.3b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.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)))
46.0b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.f64 (cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (+.f64 g (hypot.f64 g (sqrt.f64 (neg.f64 (*.f64 h h)))))) 2) -1/2)) (cbrt.f64 a)))
47.7b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 g (sqrt.f64 (neg.f64 (*.f64 h h)))) g))) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
35.6b
(+.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)))
44.3b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) 2)) (cbrt.f64 a)) (/.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (/.f64 (pow.f64 h 2) g)) -1/2)) (cbrt.f64 a)))
51.0b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 g h)) (sqrt.f64 (-.f64 g h))) g) 2)) (cbrt.f64 a)) (/.f64 (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) -1/2)) (cbrt.f64 a)))
32.1b
(+.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 (*.f64 a 2)))) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
52.0b
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (exp.f64 (+.f64 (log.f64 (/.f64 -1 g)) (log.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))))))))
37.1b
(+.f64 (/.f64 (cbrt.f64 (/.f64 (-.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) 3) g) 2)) (cbrt.f64 a)) (cbrt.f64 (*.f64 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a) -1/2)))
Compiler

Compiled 20389 to 8444 computations (58.6% saved)

regimes2.4s (15.8%)

Accuracy

Total 1.6b remaining (4.9%)

Threshold costs 0b (0%)

Counts
226 → 1
Compiler

Compiled 68352 to 44478 computations (34.9% saved)

simplify3.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
02452
13652
24452
34952
45152
55152

end560.0ms (3.7%)

Compiler

Compiled 885 to 542 computations (38.8% saved)

Profiling

Loading profile data...