** Choose an element in the middle (2nd-3th quarters) of [lo,up] ** "randomized" by 'rnd' */
| 344 | ** "randomized" by 'rnd' |
| 345 | */ |
| 346 | static IdxT choosePivot (IdxT lo, IdxT up, unsigned int rnd) { |
| 347 | IdxT r4 = (up - lo) / 4; /* range/4 */ |
| 348 | IdxT p = rnd % (r4 * 2) + (lo + r4); |
| 349 | lua_assert(lo + r4 <= p && p <= up - r4); |
| 350 | return p; |
| 351 | } |
| 352 | |
| 353 | |
| 354 | /* |