Details

Time bar (total: 8.4s)

analyze689.0ms (8.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)

sample80.0ms (0.9%)

Algorithm
intervals
Results
61.0ms250×body256valid
6.0ms50×body128nan
1.0msbody128valid
Compiler

Compiled 84 to 50 computations (40.5% saved)

simplify205.0ms (2.4%)

Algorithm
egg-herbie
Rules
729×fma-neg_binary64
636×times-frac_binary64
620×div-sub_binary64
565×unsub-neg_binary64
481×sub-neg_binary64
Counts
1 → 1
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.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
35.9b
Counts
2 → 2
Alt Table
StatusErrorProgram
36.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)))
36.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 182 to 100 computations (45.1% saved)

localize24.0ms (0.3%)

Local error

Found 4 expressions with local error:

6.5b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
9.9b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

rewrite185.0ms (2.2%)

Algorithm
rewrite-expression-head
Error
30.2b
Rules
10×cbrt-div_binary64
sqrt-prod_binary64
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
4 → 68
Calls

4 calls:

10.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
10.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
Compiler

Compiled 3217 to 1133 computations (64.8% saved)

series205.0ms (2.4%)

Error
30.7b
Counts
4 → 30
Calls

4 calls:

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

Compiled 3661 to 2608 computations (28.8% saved)

simplify162.0ms (1.9%)

Algorithm
egg-herbie
Rules
748×fma-def_binary64
610×fma-neg_binary64
299×distribute-rgt-in_binary64
240×times-frac_binary64
139×distribute-rgt-neg-out_binary64
Counts
98 → 68
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02793087
16802957
218902851
345112839
449952839
548922839

prune115.0ms (1.4%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New561268
Fresh101
Picked101
Done000
Total581270
Error
30.0b
Counts
70 → 12
Alt Table
StatusErrorProgram
44.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) (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))))))
49.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (-.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.7b
(fma.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g)) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
33.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
36.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
33.6b
(fma.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 (/.f64 1 a)) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
33.1b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))))
33.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 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
33.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 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
41.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) (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))))
33.1b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
48.9b
(fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (/.f64 -1 g))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
Compiler

Compiled 3393 to 1495 computations (55.9% saved)

localize25.0ms (0.3%)

Local error

Found 4 expressions with local error:

2.2b
(-.f64 (*.f64 g g) (*.f64 h h))
6.5b
(cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a)))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

rewrite186.0ms (2.2%)

Algorithm
rewrite-expression-head
Error
30.0b
Rules
14×add-sqr-sqrt_binary64
12×*-un-lft-identity_binary64
11×cbrt-prod_binary64
sqrt-prod_binary64
add-cube-cbrt_binary64
Counts
4 → 75
Calls

4 calls:

9.0ms
(cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a)))
4.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
Compiler

Compiled 3073 to 1080 computations (64.9% saved)

series177.0ms (2.1%)

Error
29.7b
Counts
4 → 30
Calls

4 calls:

76.0ms
(cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a)))
19.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
14.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
14.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
Compiler

Compiled 3043 to 2152 computations (29.3% saved)

simplify116.0ms (1.4%)

Algorithm
egg-herbie
Rules
568×fma-neg_binary64
378×times-frac_binary64
286×fma-def_binary64
274×div-sub_binary64
236×associate-*l*_binary64
Counts
105 → 67
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02403172
14823029
210922993
334882824
450342824

prune137.0ms (1.6%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New59867
Fresh2911
Picked101
Done000
Total621779
Error
30.0b
Counts
79 → 17
Alt Table
StatusErrorProgram
33.6b
(fma.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 (/.f64 1 a)) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
53.0b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))))
56.4b
(fma.f64 (pow.f64 a -1/3) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 0))
33.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 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
46.7b
(fma.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g)) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
39.7b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 2 a))))
33.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 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
36.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
44.0b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))) (*.f64 2 a))))
37.2b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))))
50.4b
(*.f64 (cbrt.f64 1/2) (fma.f64 (pow.f64 a -1/3) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))
45.9b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (log.f64 (exp.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))))
33.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 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
55.2b
(fma.f64 (cbrt.f64 1/2) (*.f64 (pow.f64 a -1/3) (cbrt.f64 (*.f64 g -2))) (cbrt.f64 (*.f64 -1/2 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))
33.1b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
49.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (-.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)))))))
48.9b
(fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (/.f64 -1 g))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
Compiler

Compiled 3273 to 1548 computations (52.7% saved)

localize22.0ms (0.3%)

Local error

Found 4 expressions with local error:

2.2b
(-.f64 (*.f64 g g) (*.f64 h h))
6.5b
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

rewrite249.0ms (3%)

Algorithm
rewrite-expression-head
Error
30.0b
Rules
sqrt-prod_binary64
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-log-exp_binary64
Counts
4 → 69
Calls

4 calls:

11.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
4.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
Compiler

Compiled 2987 to 1044 computations (65% saved)

series189.0ms (2.2%)

Error
29.7b
Counts
4 → 30
Calls

4 calls:

81.0ms
(cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))
20.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
17.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
15.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
Compiler

Compiled 2989 to 2098 computations (29.8% saved)

simplify128.0ms (1.5%)

Algorithm
egg-herbie
Rules
693×fma-neg_binary64
539×associate-*l*_binary64
449×fma-def_binary64
259×distribute-rgt-in_binary64
255×distribute-lft-in_binary64
Counts
99 → 64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02412816
15032676
214322612
348832612
453112612

prune154.0ms (1.8%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New61364
Fresh21416
Picked101
Done000
Total641781
Error
29.7b
Counts
81 → 17
Alt Table
StatusErrorProgram
33.6b
(fma.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 (/.f64 1 a)) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
53.0b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))))
37.2b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))))
46.4b
(+.f64 (cbrt.f64 0) (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))))
30.9b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
45.9b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (log.f64 (exp.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))))
56.4b
(fma.f64 (pow.f64 a -1/3) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 0))
33.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 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
46.7b
(fma.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g)) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
39.7b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 2 a))))
36.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
44.0b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))) (*.f64 2 a))))
50.4b
(*.f64 (cbrt.f64 1/2) (fma.f64 (pow.f64 a -1/3) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))
43.5b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 g -2)) (cbrt.f64 (*.f64 2 a))))
33.1b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
49.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (-.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)))))))
48.9b
(fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (/.f64 -1 g))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
Compiler

Compiled 3243 to 1536 computations (52.6% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

2.2b
(-.f64 (*.f64 g g) (*.f64 h h))
2.2b
(-.f64 (*.f64 g g) (*.f64 h h))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
28.5b
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))

rewrite251.0ms (3%)

Algorithm
rewrite-expression-head
Error
29.7b
Rules
sqrt-prod_binary64
add-sqr-sqrt_binary64
add-log-exp_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
4 → 70
Calls

4 calls:

5.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
3.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
3.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
Compiler

Compiled 2821 to 904 computations (68% saved)

series103.0ms (1.2%)

Error
29.7b
Counts
4 → 30
Calls

4 calls:

18.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
18.0ms
(-.f64 (*.f64 g g) (*.f64 h h))
14.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
13.0ms
(sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))
Compiler

Compiled 2453 to 1676 computations (31.7% saved)

simplify145.0ms (1.7%)

Algorithm
egg-herbie
Rules
1045×fma-neg_binary64
338×neg-mul-1_binary64
332×*-commutative_binary64
281×distribute-rgt-neg-out_binary64
253×distribute-lft-neg-out_binary64
Counts
100 → 58
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01462573
12452396
25602380
317892380
435842380
549542380
650072380

prune117.0ms (1.4%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New56258
Fresh21416
Picked101
Done000
Total591675
Error
29.7b
Counts
75 → 16
Alt Table
StatusErrorProgram
50.4b
(*.f64 (cbrt.f64 1/2) (fma.f64 (pow.f64 a -1/3) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))
50.9b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (*.f64 (sqrt.f64 (+.f64 h g)) (sqrt.f64 (-.f64 g h))) g)) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))))
46.3b
(+.f64 (/.f64 (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) (cbrt.f64 (*.f64 2 a))) (/.f64 (cbrt.f64 0) (cbrt.f64 (*.f64 2 a))))
45.9b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (log.f64 (exp.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) a))))))
56.4b
(fma.f64 (pow.f64 a -1/3) (*.f64 (cbrt.f64 1/2) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 0))
33.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 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
46.7b
(fma.f64 (cbrt.f64 -1/2) (cbrt.f64 (*.f64 (/.f64 2 a) g)) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
39.7b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (*.f64 2 a))))
36.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a)))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
44.0b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (cbrt.f64 (pow.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) 3))) (*.f64 2 a))))
33.6b
(fma.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 (/.f64 1 a)) (cbrt.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
37.2b
(fma.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))) g)) (cbrt.f64 (/.f64 1 a))) (cbrt.f64 1/2) (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))))
43.5b
(+.f64 (cbrt.f64 (/.f64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 2 a))) (/.f64 (cbrt.f64 (*.f64 g -2)) (cbrt.f64 (*.f64 2 a))))
33.1b
(+.f64 (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))
49.1b
(+.f64 (/.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (-.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)))))))
48.9b
(fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (*.f64 1/2 (/.f64 (*.f64 h h) a))) (cbrt.f64 (/.f64 -1 g))) (cbrt.f64 (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g) (*.f64 2 a))))
Compiler

Compiled 2024 to 939 computations (53.6% saved)

regimes2.0s (24%)

Accuracy

Total 1.9b remaining (5.8%)

Threshold costs 0b (0%)

Compiler

Compiled 59977 to 35159 computations (41.4% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02254
13754
25054
36154
46654
56754
66754

end1.0ms (0%)

Compiler

Compiled 37 to 21 computations (43.2% saved)

sample2.7s (32.2%)

Algorithm
intervals
Results
1.8s7576×body256valid
152.0ms1259×body128nan
54.0ms424×body128valid
Compiler

Compiled 702 to 415 computations (40.9% saved)

Profiling

Loading profile data...