Lines Matching defs:rnd
1699 /* Check if rounding digit 'rnd' leads to an increment. */
1701 _mpd_rnd_incr(const mpd_t *dec, mpd_uint_t rnd, const mpd_context_t *ctx)
1709 return (rnd >= 5);
1711 return (rnd > 5) || ((rnd == 5) && mpd_isoddcoeff(dec));
1713 return !(rnd == 0 || mpd_isnegative(dec));
1715 return !(rnd == 0 || mpd_ispositive(dec));
1717 return (rnd > 5);
1719 return !(rnd == 0);
1722 return (!(rnd == 0) && (ld == 0 || ld == 5));
1736 _mpd_apply_round(mpd_t *dec, mpd_uint_t rnd, const mpd_context_t *ctx,
1739 if (_mpd_rnd_incr(dec, rnd, ctx)) {
1770 _mpd_apply_round_excess(mpd_t *dec, mpd_uint_t rnd, const mpd_context_t *ctx,
1773 if (_mpd_rnd_incr(dec, rnd, ctx)) {
1792 _mpd_apply_round_fit(mpd_t *dec, mpd_uint_t rnd, const mpd_context_t *ctx,
1795 if (_mpd_rnd_incr(dec, rnd, ctx)) {
1820 int rnd;
1905 rnd = (int)mpd_qshiftr_inplace(dec, shift);
1908 _mpd_apply_round_excess(dec, rnd, ctx, status);
1910 if (rnd) {
1942 mpd_uint_t rnd;
1952 rnd = mpd_qshiftr_inplace(dec, shift);
1954 _mpd_apply_round(dec, rnd, ctx, status);
1956 if (rnd) {
2533 mpd_uint_t rnd = 0, rest = 0, word;
2538 _mpd_divmod_pow10(&rnd, &rest, word, mpd_word_digits(word)-1);
2547 return (rnd == 0 || rnd == 5) ? rnd + !!rest : rnd;
2558 mpd_uint_t rnd;
2570 rnd = _mpd_get_rnd(a->data, a->len, (n==a->digits));
2576 rnd = _mpd_baseshiftr(result->data, a->data, a->len, n);
2583 return rnd;
2595 mpd_uint_t rnd;
2606 rnd = _mpd_get_rnd(result->data, result->len, (n==result->digits));
2610 rnd = _mpd_baseshiftr(result->data, result->data, result->len, n);
2618 return rnd;
2631 mpd_uint_t rnd;
2645 rnd = _mpd_get_rnd(a->data, a->len, (n==a->digits));
2652 rnd = _mpd_baseshiftr(result->data, a->data, a->len, n);
2660 rnd = _mpd_baseshiftr(result->data, a->data, a->len, n);
2668 return rnd;
4713 mpd_uint_t rnd;
4722 rnd = mpd_qshiftr(result, &_mpd_ln10, shift, status);
4723 if (rnd == MPD_UINT_MAX) {
4732 _mpd_apply_round_excess(result, rnd, &maxcontext, status);
6967 mpd_uint_t rnd;
7010 rnd = mpd_qshiftr(result, a, shift, status);
7011 if (rnd == MPD_UINT_MAX) {
7015 if (!_mpd_apply_round_fit(result, rnd, ctx, status)) {
7019 if (rnd) {
7208 mpd_uint_t rnd;
7234 rnd = mpd_qshiftr(result, a, shift, status);
7235 if (rnd == MPD_UINT_MAX) {
7239 _mpd_apply_round_excess(result, rnd, ctx, status);
7241 if (rnd) {
7297 mpd_uint_t rnd;
7315 rnd = mpd_qshiftr(result, a, -a->exp, status);
7316 if (rnd == MPD_UINT_MAX) {
7322 _mpd_apply_round_excess(result, rnd, ctx, status);
7325 if (rnd) {