Details

Time bar (total: 4.3s)

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

Results
868.0ms2366×body1024valid
461.0ms4344×body128valid
290.0ms1038×body512valid
98.0ms508×body256valid
Compiler

Compiled 38 to 32 computations (15.8% saved)

simplify13.0ms (0.3%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
15×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
11417
22017
32817
43817
55617
69317
712717
817417
921017
1023617
1123817
Stop Event
saturated
Counts
1 → 2

prune2.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 47 to 38 computations (19.1% saved)

localize7.0ms (0.2%)

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))
2.9b
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))

series26.0ms (0.6%)

Counts
3 → 4
Calls

3 calls:

11.0ms
(/.f64 1 (sqrt.f64 x))
9.0ms
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
6.0ms
(/.f64 1 (sqrt.f64 (+.f64 x 1)))

rewrite61.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
776×prod-diff_binary64
205×fma-neg_binary64
170×log1p-udef_binary64
169×expm1-udef_binary64
117×egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0932
120824
2291324
Stop Event
node limit
Counts
3 → 117
Calls

3 calls:

59.0ms
(/.f64 1 (sqrt.f64 (+.f64 x 1)))
59.0ms
(/.f64 1 (sqrt.f64 x))
59.0ms
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))

simplify27.0ms (0.6%)

Algorithm
egg-herbie
Rules
695×fma-neg_binary64
558×cancel-sign-sub-inv_binary64
474×distribute-rgt-neg-in_binary64
284×unswap-sqr_binary64
180×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01847
15243
213139
343431
4147831
5380031
Stop Event
node limit
Counts
121 → 124

prune160.0ms (3.7%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New11212124
Fresh000
Picked101
Done000
Total11312125
Error
19.8b
Counts
125 → 12
Alt Table
StatusErrorProgram
28.8b
(fma.f64 (pow.f64 (cbrt.f64 x) -1) (pow.f64 (cbrt.f64 (sqrt.f64 x)) -1) (neg.f64 (pow.f64 (+.f64 1 x) -1/2)))
25.3b
(/.f64 (-.f64 (/.f64 1 x) (*.f64 (neg.f64 (pow.f64 (+.f64 1 x) -1/2)) (neg.f64 (pow.f64 (+.f64 1 x) -1/2)))) (-.f64 (pow.f64 x -1/2) (neg.f64 (pow.f64 (+.f64 1 x) -1/2))))
27.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))))
28.4b
(fma.f64 (sqrt.f64 (pow.f64 x -1/2)) (sqrt.f64 (pow.f64 x -1/2)) (neg.f64 (pow.f64 (+.f64 1 x) -1/2)))
33.5b
(/.f64 (+.f64 (pow.f64 (sqrt.f64 x) -3) (pow.f64 (neg.f64 (pow.f64 (+.f64 1 x) -1/2)) 3)) (+.f64 (/.f64 1 x) (-.f64 (*.f64 (neg.f64 (pow.f64 (+.f64 1 x) -1/2)) (neg.f64 (pow.f64 (+.f64 1 x) -1/2))) (*.f64 (pow.f64 x -1/2) (neg.f64 (pow.f64 (+.f64 1 x) -1/2))))))
28.3b
(+.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))))
28.2b
(+.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/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)))
28.1b
(+.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) -1/2))) (cbrt.f64 (/.f64 1 (+.f64 1 x))) (pow.f64 (+.f64 1 x) -1/2)))
28.6b
(+.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))))
28.4b
(+.f64 (fma.f64 (sqrt.f64 (pow.f64 x -1/2)) (sqrt.f64 (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))))
20.4b
(/.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)) (sqrt.f64 (*.f64 x (+.f64 1 x))))
20.6b
(*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x))) (/.f64 1 (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))))
Compiler

Compiled 3263 to 2650 computations (18.8% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x (+.f64 1 x))
0.2b
(/.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)) (sqrt.f64 (*.f64 x (+.f64 1 x))))
2.9b
(-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))
12.6b
(sqrt.f64 (*.f64 x (+.f64 1 x)))

series37.0ms (0.9%)

Counts
4 → 21
Calls

4 calls:

19.0ms
(/.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)) (sqrt.f64 (*.f64 x (+.f64 1 x))))
12.0ms
(-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))
4.0ms
(sqrt.f64 (*.f64 x (+.f64 1 x)))
2.0ms
(*.f64 x (+.f64 1 x))

rewrite70.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
546×fma-def_binary64
267×fma-neg_binary64
238×egg-rr
184×expm1-udef_binary64
184×log1p-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01049
122543
2320341
Stop Event
node limit
Counts
4 → 238
Calls

4 calls:

62.0ms
(*.f64 x (+.f64 1 x))
62.0ms
(/.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)) (sqrt.f64 (*.f64 x (+.f64 1 x))))
62.0ms
(-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))
62.0ms
(sqrt.f64 (*.f64 x (+.f64 1 x)))

simplify28.0ms (0.6%)

Algorithm
egg-herbie
Rules
630×fma-neg_binary64
501×cancel-sign-sub-inv_binary64
367×associate-/l/_binary64
315×associate-/l*_binary64
234×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023145
169125
2154125
3385125
41006125
52451125
Stop Event
node limit
Counts
259 → 257

prune259.0ms (6%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New2543257
Fresh11011
Picked101
Done000
Total2663269
Error
5.1b
Counts
269 → 3
Alt Table
StatusErrorProgram
20.4b
(fma.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 (fma.f64 x x x) -1/2) (neg.f64 (sqrt.f64 (/.f64 x (fma.f64 x x x)))))
20.4b
(fma.f64 1 (sqrt.f64 (/.f64 (+.f64 x 1) (fma.f64 x x x))) (neg.f64 (sqrt.f64 (/.f64 x (fma.f64 x x x)))))
5.3b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (sqrt.f64 (*.f64 x (+.f64 1 x))))
Compiler

Compiled 5363 to 3043 computations (43.3% saved)

localize12.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

series38.0ms (0.9%)

Counts
3 → 2
Calls

3 calls:

19.0ms
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (sqrt.f64 (*.f64 x (+.f64 1 x))))
13.0ms
(/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)))
6.0ms
(+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))

rewrite70.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
560×fma-def_binary64
270×fma-neg_binary64
210×log1p-udef_binary64
209×expm1-udef_binary64
171×egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01450
134841
2392341
Stop Event
node limit
Counts
3 → 171
Calls

3 calls:

65.0ms
(+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))
65.0ms
(/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)))
65.0ms
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (sqrt.f64 (*.f64 x (+.f64 1 x))))

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012
142
Stop Event
saturated
Counts
173 → 172

prune277.0ms (6.4%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2169225
Fresh022
Picked101
Done000
Total21711228
Error
0.0b
Counts
228 → 11
Alt Table
StatusErrorProgram
20.4b
(fma.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 (fma.f64 x x x) -1/2) (neg.f64 (sqrt.f64 (/.f64 x (fma.f64 x x x)))))
5.4b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (cbrt.f64 (pow.f64 (+.f64 (hypot.f64 1 (sqrt.f64 x)) (sqrt.f64 x)) 3))) (sqrt.f64 (*.f64 x (+.f64 1 x))))
0.6b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (*.f64 (*.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 x 1/4)) (pow.f64 x 1/4)))
0.3b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (hypot.f64 (sqrt.f64 x) x))
5.3b
(/.f64 (*.f64 (/.f64 1 (+.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2))) (+.f64 1 (+.f64 x (-.f64 x (hypot.f64 (sqrt.f64 x) x))))) (sqrt.f64 (*.f64 x (+.f64 1 x))))
23.0b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (cbrt.f64 (*.f64 (pow.f64 (+.f64 x 1) 3/2) (pow.f64 x 3/2))))
20.4b
(fma.f64 1 (sqrt.f64 (/.f64 (+.f64 x 1) (fma.f64 x x x))) (neg.f64 (sqrt.f64 (/.f64 x (fma.f64 x x x)))))
22.9b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (cbrt.f64 (pow.f64 (fma.f64 x x x) 3/2)))
5.5b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (pow.f64 (pow.f64 (fma.f64 x x x) 1/4) 2))
5.8b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x x x)))))
0.7b
(pow.f64 (*.f64 (+.f64 (hypot.f64 1 (sqrt.f64 x)) (sqrt.f64 x)) (hypot.f64 (sqrt.f64 x) x)) -1)
Compiler

Compiled 5695 to 3326 computations (41.6% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series60.0ms (1.4%)

Counts
2 → 2
Calls

2 calls:

49.0ms
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (hypot.f64 (sqrt.f64 x) x))
11.0ms
(hypot.f64 (sqrt.f64 x) x)

rewrite50.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
458×fma-def_binary64
246×fma-neg_binary64
192×log1p-udef_binary64
191×expm1-udef_binary64
175×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01228
129725
2338725
Stop Event
node limit
Counts
2 → 60
Calls

2 calls:

49.0ms
(hypot.f64 (sqrt.f64 x) x)
49.0ms
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (hypot.f64 (sqrt.f64 x) x))

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
sub-neg_binary64
+-commutative_binary64
fma-def_binary64
*-commutative_binary64
associate-+l-_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044
164
284
394
4114
5154
6194
7244
Stop Event
saturated
Counts
62 → 63

prune256.0ms (5.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1954199
Fresh3710
Picked101
Done000
Total19911210
Error
0.0b
Counts
210 → 11
Alt Table
StatusErrorProgram
20.4b
(fma.f64 1 (sqrt.f64 (/.f64 (+.f64 x 1) (fma.f64 x x x))) (neg.f64 (sqrt.f64 (/.f64 x (fma.f64 x x x)))))
0.6b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (pow.f64 (sqrt.f64 (hypot.f64 x (sqrt.f64 x))) 2))
0.7b
(pow.f64 (*.f64 (+.f64 (hypot.f64 1 (sqrt.f64 x)) (sqrt.f64 x)) (hypot.f64 (sqrt.f64 x) x)) -1)
0.7b
(/.f64 (*.f64 (/.f64 1 (+.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2))) (+.f64 1 (+.f64 x (-.f64 x (hypot.f64 (sqrt.f64 x) x))))) (hypot.f64 (sqrt.f64 x) x))
20.4b
(fma.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 (fma.f64 x x x) -1/2) (neg.f64 (sqrt.f64 (/.f64 x (fma.f64 x x x)))))
22.9b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (cbrt.f64 (pow.f64 (fma.f64 x x x) 3/2)))
0.6b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (*.f64 (*.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 x 1/4)) (pow.f64 x 1/4)))
5.8b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x x x)))))
23.0b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (+.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (cbrt.f64 (*.f64 (pow.f64 (+.f64 x 1) 3/2) (pow.f64 x 3/2))))
0.8b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (cbrt.f64 (pow.f64 (+.f64 (hypot.f64 1 (sqrt.f64 x)) (sqrt.f64 x)) 3))) (hypot.f64 (sqrt.f64 x) x))
0.6b
(/.f64 (/.f64 (+.f64 1 (-.f64 x x)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 1 (sqrt.f64 x)) (sqrt.f64 x))) 3)) (hypot.f64 (sqrt.f64 x) x))
Compiler

Compiled 4547 to 2275 computations (50% saved)

regimes878.0ms (20.3%)

Accuracy

Total 0.2b remaining (89.9%)

Threshold costs 0.2b (89.9%)

Counts
363 → 1
Compiler

Compiled 13612 to 9784 computations (28.1% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
*-lft-identity_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01228
12028
22428
32628
42728
Stop Event
saturated

end195.0ms (4.5%)

Compiler

Compiled 291 to 186 computations (36.1% saved)

Profiling

Loading profile data...