}
}
-static const int MAX_XSQ_Q10 = 245727;
-
static void model_rd_norm(int xsq_q10, int *r_q10, int *d_q10) {
// NOTE: The tables below must be of the same size.
*dist = 0;
} else {
int d_q10, r_q10;
+ static const uint32_t MAX_XSQ_Q10 = 245727;
const uint64_t xsq_q10_64 =
((((uint64_t)qstep * qstep * n) << 10) + (var >> 1)) / var;
- const int xsq_q10 = xsq_q10_64 > (uint64_t)MAX_XSQ_Q10 ?
- (int)MAX_XSQ_Q10 : (int)xsq_q10_64;
+ const int xsq_q10 = (int)MIN(xsq_q10_64, MAX_XSQ_Q10);
model_rd_norm(xsq_q10, &r_q10, &d_q10);
*rate = (n * r_q10 + 2) >> 2;
*dist = (var * (int64_t)d_q10 + 512) >> 10;