Details

Time bar (total: 8.5s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
50%0%50%2
Compiler

Compiled 13 to 11 computations (15.4% saved)

sample1.8s (21.3%)

Results
901.0ms2337×body1024valid
493.0ms4378×body128valid
285.0ms1016×body512valid
95.0ms525×body256valid
Compiler

Compiled 38 to 32 computations (15.8% saved)

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
14×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
11417
22017
32817
43617
55417
67917
79617
811317
912317
1012717
1112917
1211517

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
21.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
21.2b
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
Compiler

Compiled 47 to 38 computations (19.1% saved)

localize6.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 1 (sqrt.f64 (+.f64 x 1)))
0.2b
(/.f64 1 (sqrt.f64 x))
3.0b
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))

series35.0ms (0.4%)

Counts
3 → 4
Calls

3 calls:

13.0ms
(/.f64 1 (sqrt.f64 x))
13.0ms
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
8.0ms
(/.f64 1 (sqrt.f64 (+.f64 x 1)))

rewrite95.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
776×prod-diff_binary64
428×fma-def_binary64
246×fma-neg_binary64
170×log1p-udef_binary64
169×expm1-udef_binary64
Counts
3 → 167
Calls

3 calls:

92.0ms
(/.f64 1 (sqrt.f64 (+.f64 x 1)))
92.0ms
(/.f64 1 (sqrt.f64 x))
92.0ms
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
120524
2257024
3475724
4494824
000
100

simplify124.0ms (1.5%)

Algorithm
egg-herbie
Rules
695×fma-neg_binary64
559×cancel-sign-sub-inv_binary64
543×unsub-neg_binary64
474×distribute-rgt-neg-in_binary64
424×sub-neg_binary64
Counts
171 → 174
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01847
15143
212239
333031
4105831
5209331
6352631
7413931
8486431
9494931
10500031
11480231

prune235.0ms (2.8%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New15915174
Fresh000
Picked101
Done000
Total16015175
Error
20.5b
Counts
175 → 15
Alt Table
StatusErrorProgram
31.3b
(fma.f64 (pow.f64 (cbrt.f64 x) -1) (pow.f64 (cbrt.f64 (sqrt.f64 x)) -1) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
30.8b
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 x) -1/2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
31.3b
(fma.f64 (cbrt.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) 2) (fma.f64 (neg.f64 (pow.f64 (pow.f64 (+.f64 1 x) 1/4) -1)) (pow.f64 (pow.f64 (+.f64 1 x) 1/4) -1) (pow.f64 (+.f64 1 x) -1/2)))
30.7b
(+.f64 (fma.f64 -1 (/.f64 1 (neg.f64 (sqrt.f64 x))) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
30.5b
(fma.f64 (cbrt.f64 (/.f64 1 (+.f64 1 x))) (neg.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) -1/2))) (pow.f64 x -1/2))
30.6b
(+.f64 (fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
31.3b
(fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (/.f64 1 x)) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
21.2b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)))
30.9b
(/.f64 (+.f64 (pow.f64 (sqrt.f64 x) -3) (pow.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))) 3)) (+.f64 (/.f64 1 x) (-.f64 (*.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))) (/.f64 -1 (sqrt.f64 (+.f64 1 x)))) (*.f64 (pow.f64 x -1/2) (/.f64 -1 (sqrt.f64 (+.f64 1 x)))))))
31.0b
(+.f64 (fma.f64 (pow.f64 (pow.f64 x 1/4) -1) (pow.f64 (pow.f64 x 1/4) -1) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
30.6b
(fma.f64 (*.f64 (cbrt.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x)))) (cbrt.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))))) (cbrt.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x)))) (pow.f64 x -1/2))
31.0b
(fma.f64 (pow.f64 (pow.f64 x 1/4) -1) (pow.f64 (pow.f64 x 1/4) -1) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
30.7b
(fma.f64 (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2) (neg.f64 (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (pow.f64 x -1/2))
30.3b
(+.f64 (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (/.f64 1 x)) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
27.1b
(/.f64 (-.f64 (/.f64 1 x) (*.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))) (-.f64 (pow.f64 x -1/2) (/.f64 -1 (sqrt.f64 (+.f64 1 x)))))
Compiler

Compiled 4987 to 4049 computations (18.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)
0.1b
(pow.f64 (sqrt.f64 x) -1/2)
0.2b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)))
3.0b
(-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2))

series159.0ms (1.9%)

Counts
4 → 4
Calls

4 calls:

82.0ms
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)))
47.0ms
(-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2))
17.0ms
(pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)
12.0ms
(pow.f64 (sqrt.f64 x) -1/2)

rewrite100.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
951×prod-diff_binary64
258×egg-rr
126×add-sqr-sqrt_binary64
124×log1p-expm1-u_binary64
124×expm1-log1p-u_binary64
Counts
4 → 258
Calls

4 calls:

93.0ms
(pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)
93.0ms
(pow.f64 (sqrt.f64 x) -1/2)
93.0ms
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)))
93.0ms
(-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01252
126637
2317337
3495037
000
100

simplify113.0ms (1.3%)

Algorithm
egg-herbie
Rules
695×fma-neg_binary64
559×cancel-sign-sub-inv_binary64
543×unsub-neg_binary64
474×distribute-rgt-neg-in_binary64
424×sub-neg_binary64
Counts
262 → 265
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01847
15143
212339
333131
4105931
5209431
6352731
7414131
8486631
9495131
10479531

prune701.0ms (8.3%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New28626312
Fresh10414
Picked101
Done000
Total29730327
Error
20.4b
Counts
327 → 30
Alt Table
StatusErrorProgram
31.3b
(+.f64 (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (*.f64 (cbrt.f64 (pow.f64 x -1/4)) (pow.f64 x -1/4)) (neg.f64 (pow.f64 (+.f64 x 1) -1/2))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4) (pow.f64 (+.f64 x 1) -1/2)))
30.8b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (-.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4)) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/8)) (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))))
31.3b
(+.f64 (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (*.f64 (cbrt.f64 (pow.f64 x -1/4)) (pow.f64 x -1/4)) (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/2) 1))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/2)) 1 (*.f64 (pow.f64 (+.f64 x 1) -1/2) 1)))
30.7b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (-.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (pow.f64 (+.f64 x 1) -1/4))))
31.0b
(fma.f64 (pow.f64 (pow.f64 x 1/4) -1) (pow.f64 (pow.f64 x 1/4) -1) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
45.1b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 x x)) -1/4) (pow.f64 (cbrt.f64 x) -1/4) (neg.f64 (pow.f64 (+.f64 x 1) -1/4))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (pow.f64 (+.f64 x 1) -1/4))))
31.3b
(fma.f64 (pow.f64 (cbrt.f64 x) -1) (pow.f64 (cbrt.f64 (sqrt.f64 x)) -1) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
30.6b
(+.f64 (fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))) (pow.f64 (+.f64 x 1) -1/8) (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8))))
31.4b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (pow.f64 x -1/4)) (neg.f64 (pow.f64 (+.f64 x 1) -1/4))))
30.5b
(+.f64 (fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
30.8b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (fma.f64 (pow.f64 1 -1/4) (pow.f64 x -1/4) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 x 1))) -1/2) (pow.f64 (cbrt.f64 (+.f64 x 1)) -1/2)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 x 1))) -1/2)) (pow.f64 (cbrt.f64 (+.f64 x 1)) -1/2) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 x 1))) -1/2) (pow.f64 (cbrt.f64 (+.f64 x 1)) -1/2)))))
31.0b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (fma.f64 (pow.f64 x -1/8) (pow.f64 x -1/8) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) -1/4) (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) -1/4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) -1/4)) (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) -1/4) (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) -1/4) (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) -1/4)))))
31.3b
(fma.f64 (cbrt.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) 2) (fma.f64 (neg.f64 (pow.f64 (pow.f64 (+.f64 1 x) 1/4) -1)) (pow.f64 (pow.f64 (+.f64 1 x) 1/4) -1) (pow.f64 (+.f64 1 x) -1/2)))
30.6b
(+.f64 (fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
31.1b
(+.f64 (fma.f64 (*.f64 (pow.f64 x -1/4) (cbrt.f64 (pow.f64 x -1/2))) (cbrt.f64 (pow.f64 x -1/4)) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
30.8b
(+.f64 (fma.f64 (pow.f64 x -1/4) (pow.f64 x -1/4) (neg.f64 (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))) (pow.f64 (+.f64 x 1) -1/8) (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8))))
31.2b
(+.f64 (fma.f64 (*.f64 (pow.f64 x -1/4) (cbrt.f64 (pow.f64 x -1/2))) (cbrt.f64 (pow.f64 x -1/4)) (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/2) 1))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/2)) 1 (*.f64 (pow.f64 (+.f64 x 1) -1/2) 1)))
22.3b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (fma.f64 (pow.f64 (pow.f64 x 1/4) -1/2) (pow.f64 (pow.f64 x 1/4) -1/2) (neg.f64 (pow.f64 (+.f64 x 1) -1/4))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/8)) (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))))
30.9b
(+.f64 (fma.f64 (pow.f64 x -1/8) (*.f64 (pow.f64 x -1/8) (pow.f64 x -1/4)) (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (*.f64 (pow.f64 (+.f64 x 1) -1/4) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))) (*.f64 (pow.f64 (+.f64 x 1) -1/4) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))) (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (*.f64 (pow.f64 (+.f64 x 1) -1/4) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))))
30.8b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (fma.f64 (pow.f64 (pow.f64 x 1/4) -1/2) (pow.f64 (pow.f64 x 1/4) -1/2) (neg.f64 (pow.f64 (+.f64 x 1) -1/4))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (pow.f64 (+.f64 x 1) -1/4))))
30.9b
(+.f64 (fma.f64 (pow.f64 x -1/8) (*.f64 (pow.f64 x -1/8) (pow.f64 x -1/4)) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
30.8b
(fma.f64 (pow.f64 x -1/4) (pow.f64 x -1/4) (neg.f64 (pow.f64 (+.f64 x 1) -1/2)))
31.0b
(+.f64 (fma.f64 (pow.f64 x -1/8) (*.f64 (pow.f64 x -1/8) (pow.f64 x -1/4)) (neg.f64 (pow.f64 (+.f64 x 1) -1/2))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4) (pow.f64 (+.f64 x 1) -1/2)))
21.2b
(/.f64 (*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
30.9b
(+.f64 (fma.f64 (pow.f64 x -1/8) (*.f64 (pow.f64 x -1/8) (pow.f64 x -1/4)) (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/2) 1))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/2)) 1 (*.f64 (pow.f64 (+.f64 x 1) -1/2) 1)))
31.1b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (+.f64 (fma.f64 (pow.f64 (cbrt.f64 x) -1/2) (pow.f64 (cbrt.f64 (sqrt.f64 x)) -1/2) (neg.f64 (pow.f64 (+.f64 x 1) -1/4))) (fma.f64 (neg.f64 (pow.f64 (+.f64 x 1) -1/8)) (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))))
31.1b
(+.f64 (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (*.f64 (cbrt.f64 (pow.f64 x -1/4)) (pow.f64 x -1/4)) (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (*.f64 (pow.f64 (+.f64 x 1) -1/4) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))) (*.f64 (pow.f64 (+.f64 x 1) -1/4) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))) (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (*.f64 (pow.f64 (+.f64 x 1) -1/4) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))))
22.9b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (exp.f64 (log.f64 (-.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4)))))
31.2b
(+.f64 (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (*.f64 (cbrt.f64 (pow.f64 x -1/4)) (pow.f64 x -1/4)) (neg.f64 (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))) (pow.f64 (+.f64 x 1) -1/8) (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8))))
31.5b
(+.f64 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (pow.f64 x -1/2))) (cbrt.f64 (pow.f64 x -1/2)) (neg.f64 (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4))) (pow.f64 (+.f64 x 1) -1/8) (*.f64 (*.f64 (pow.f64 (+.f64 x 1) -1/8) (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/8))))
Compiler

Compiled 14889 to 12046 computations (19.1% saved)

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4)))
0.2b
(/.f64 (*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
2.9b
(-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4))
15.3b
(pow.f64 (*.f64 x (+.f64 x 1)) -1/4)

series274.0ms (3.2%)

Counts
4 → 48
Calls

4 calls:

246.0ms
(/.f64 (*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
15.0ms
(*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4)))
8.0ms
(-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4))
5.0ms
(pow.f64 (*.f64 x (+.f64 x 1)) -1/4)

rewrite91.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
432×prod-diff_binary64
245×log1p-expm1-u_binary64
245×expm1-log1p-u_binary64
234×add-sqr-sqrt_binary64
227×add-cbrt-cube_binary64
Counts
4 → 153
Calls

4 calls:

87.0ms
(*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4)))
87.0ms
(/.f64 (*.f64 (-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4)) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
87.0ms
(-.f64 (pow.f64 x -3/4) (pow.f64 (+.f64 x 1) -3/4))
87.0ms
(pow.f64 (*.f64 x (+.f64 x 1)) -1/4)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021106
1506102
24917102
35402102
000
100

simplify155.0ms (1.8%)

Algorithm
egg-herbie
Rules
767×fma-def_binary64
560×times-frac_binary64
343×associate-/l*_binary64
226×*-commutative_binary64
178×+-commutative_binary64
Counts
201 → 241
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06568588
122157399
249507399
349367399

prune672.0ms (7.9%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New2365241
Fresh28129
Picked101
Done000
Total2656271
Error
5.6b
Counts
271 → 6
Alt Table
StatusErrorProgram
36.8b
(-.f64 (+.f64 (*.f64 9/8 (*.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 2 (sqrt.f64 (/.f64 1 x))) (pow.f64 (/.f64 1 x) 1/2)) 2)) (sqrt.f64 (/.f64 1 (pow.f64 x 7))))) (*.f64 3/2 (/.f64 1 (*.f64 (+.f64 (*.f64 2 (sqrt.f64 (/.f64 1 x))) (pow.f64 (/.f64 1 x) 1/2)) (pow.f64 x 2))))) (*.f64 3/2 (/.f64 1 (*.f64 (+.f64 (*.f64 2 (sqrt.f64 (/.f64 1 x))) (pow.f64 (/.f64 1 x) 1/2)) (pow.f64 x 3)))))
48.6b
(/.f64 (*.f64 (fma.f64 3/4 (pow.f64 (/.f64 1 (pow.f64 x 7)) 1/4) (fma.f64 77/128 (pow.f64 (/.f64 1 (pow.f64 x 15)) 1/4) (*.f64 (pow.f64 (/.f64 1 (pow.f64 x 11)) 1/4) -21/32))) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
30.5b
(+.f64 (fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
36.6b
(/.f64 (-.f64 (+.f64 (/.f64 3/2 (*.f64 x x)) (/.f64 95/64 (pow.f64 x 4))) (+.f64 (/.f64 3/2 (pow.f64 x 3)) (/.f64 47/32 (pow.f64 x 5)))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
36.7b
(/.f64 (-.f64 (+.f64 (*.f64 95/64 (/.f64 1 (pow.f64 x 4))) (*.f64 3/2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 47/32 (/.f64 1 (pow.f64 x 5))) (*.f64 3/2 (/.f64 1 (pow.f64 x 3))))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
36.8b
(-.f64 (fma.f64 9/8 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 7))) (pow.f64 (*.f64 3 (sqrt.f64 (/.f64 1 x))) 2)) (/.f64 3/2 (*.f64 (*.f64 x x) (*.f64 3 (sqrt.f64 (/.f64 1 x)))))) (/.f64 3/2 (*.f64 (pow.f64 x 3) (*.f64 3 (sqrt.f64 (/.f64 1 x))))))
Compiler

Compiled 21202 to 17406 computations (17.9% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))
0.3b
(cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))
15.2b
(fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
32.9b
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))

series238.0ms (2.8%)

Counts
4 → 36
Calls

4 calls:

219.0ms
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))
10.0ms
(fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
4.0ms
(cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))
4.0ms
(cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))

rewrite82.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
612×log-prod_binary64
325×fma-def_binary64
225×log1p-udef_binary64
224×expm1-udef_binary64
212×log-pow_binary64
Counts
4 → 147
Calls

4 calls:

80.0ms
(cbrt.f64 (pow.f64 (+.f64 x 1) -1/4))
80.0ms
(cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))
80.0ms
(fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
80.0ms
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017115
136037
2308837
3542837
000
100

simplify51.0ms (0.6%)

Algorithm
egg-herbie
Rules
753×times-frac_binary64
672×fma-neg_binary64
347×fma-def_binary64
321×sub-neg_binary64
266×cancel-sign-sub-inv_binary64
Counts
183 → 203
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0126851
1374827
21003678
33018584
45050584

prune1.0s (11.9%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New4290429
Fresh055
Picked011
Done000
Total4296435
Error
5.6b
Counts
435 → 6
Alt Table
StatusErrorProgram
36.8b
(-.f64 (+.f64 (*.f64 9/8 (*.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 2 (sqrt.f64 (/.f64 1 x))) (pow.f64 (/.f64 1 x) 1/2)) 2)) (sqrt.f64 (/.f64 1 (pow.f64 x 7))))) (*.f64 3/2 (/.f64 1 (*.f64 (+.f64 (*.f64 2 (sqrt.f64 (/.f64 1 x))) (pow.f64 (/.f64 1 x) 1/2)) (pow.f64 x 2))))) (*.f64 3/2 (/.f64 1 (*.f64 (+.f64 (*.f64 2 (sqrt.f64 (/.f64 1 x))) (pow.f64 (/.f64 1 x) 1/2)) (pow.f64 x 3)))))
48.6b
(/.f64 (*.f64 (fma.f64 3/4 (pow.f64 (/.f64 1 (pow.f64 x 7)) 1/4) (fma.f64 77/128 (pow.f64 (/.f64 1 (pow.f64 x 15)) 1/4) (*.f64 (pow.f64 (/.f64 1 (pow.f64 x 11)) 1/4) -21/32))) (+.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 x 1) -1/4))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
30.5b
(+.f64 (fma.f64 1 (pow.f64 x -1/2) (neg.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4))) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) -1/4)) (pow.f64 (+.f64 x 1) -1/4)) (cbrt.f64 (pow.f64 (+.f64 x 1) -1/2)))))
36.6b
(/.f64 (-.f64 (+.f64 (/.f64 3/2 (*.f64 x x)) (/.f64 95/64 (pow.f64 x 4))) (+.f64 (/.f64 3/2 (pow.f64 x 3)) (/.f64 47/32 (pow.f64 x 5)))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
36.7b
(/.f64 (-.f64 (+.f64 (*.f64 95/64 (/.f64 1 (pow.f64 x 4))) (*.f64 3/2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 47/32 (/.f64 1 (pow.f64 x 5))) (*.f64 3/2 (/.f64 1 (pow.f64 x 3))))) (+.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 (+.f64 x 1) -1/2) (pow.f64 (*.f64 x (+.f64 x 1)) -1/4))))
36.8b
(-.f64 (fma.f64 9/8 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 7))) (pow.f64 (*.f64 3 (sqrt.f64 (/.f64 1 x))) 2)) (/.f64 3/2 (*.f64 (*.f64 x x) (*.f64 3 (sqrt.f64 (/.f64 1 x)))))) (/.f64 3/2 (*.f64 (pow.f64 x 3) (*.f64 3 (sqrt.f64 (/.f64 1 x))))))
Compiler

Compiled 29169 to 24740 computations (15.2% saved)

regimes2.1s (24.8%)

Accuracy

Total 0.1b remaining (1.5%)

Threshold costs 0.1b (1.5%)

Counts
481 → 2
Compiler

Compiled 37048 to 30592 computations (17.4% saved)

bsearch28.0ms (0.3%)

Compiler

Compiled 12 to 10 computations (16.7% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
053182
181182
2107182
3131182
4140182
5142182
6138182

end319.0ms (3.8%)

Compiler

Compiled 565 to 471 computations (16.6% saved)

Profiling

Loading profile data...