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