mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
1) Replace long-winded abort() construct by assert().
2) Remove micro optimization (inline checking for NaN before calling mpd_qcheck_nans()) that probably has no benefit in this case.
This commit is contained in:
parent
a26ad5a0a1
commit
88e19779ad
1 changed files with 31 additions and 34 deletions
|
@ -5713,30 +5713,28 @@ void
|
|||
mpd_qnext_minus(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
|
||||
uint32_t *status)
|
||||
{
|
||||
mpd_context_t workctx; /* function context */
|
||||
mpd_context_t workctx;
|
||||
MPD_NEW_CONST(tiny,MPD_POS,mpd_etiny(ctx)-1,1,1,1,1);
|
||||
|
||||
if (mpd_isspecial(a)) {
|
||||
if (mpd_qcheck_nan(result, a, ctx, status)) {
|
||||
return;
|
||||
}
|
||||
if (mpd_isinfinite(a)) {
|
||||
if (mpd_isnegative(a)) {
|
||||
mpd_qcopy(result, a, status);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
mpd_clear_flags(result);
|
||||
mpd_qmaxcoeff(result, ctx, status);
|
||||
if (mpd_isnan(result)) {
|
||||
return;
|
||||
}
|
||||
result->exp = ctx->emax - ctx->prec + 1;
|
||||
return;
|
||||
}
|
||||
|
||||
assert(mpd_isinfinite(a));
|
||||
if (mpd_isnegative(a)) {
|
||||
mpd_qcopy(result, a, status);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
mpd_clear_flags(result);
|
||||
mpd_qmaxcoeff(result, ctx, status);
|
||||
if (mpd_isnan(result)) {
|
||||
return;
|
||||
}
|
||||
result->exp = mpd_etop(ctx);
|
||||
return;
|
||||
}
|
||||
/* debug */
|
||||
abort(); /* GCOV_NOT_REACHED */
|
||||
}
|
||||
|
||||
mpd_workcontext(&workctx, ctx);
|
||||
|
@ -5769,21 +5767,21 @@ mpd_qnext_plus(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
|
|||
if (mpd_qcheck_nan(result, a, ctx, status)) {
|
||||
return;
|
||||
}
|
||||
if (mpd_isinfinite(a)) {
|
||||
if (mpd_ispositive(a)) {
|
||||
mpd_qcopy(result, a, status);
|
||||
}
|
||||
else {
|
||||
mpd_clear_flags(result);
|
||||
mpd_qmaxcoeff(result, ctx, status);
|
||||
if (mpd_isnan(result)) {
|
||||
return;
|
||||
}
|
||||
mpd_set_flags(result, MPD_NEG);
|
||||
result->exp = mpd_etop(ctx);
|
||||
}
|
||||
return;
|
||||
|
||||
assert(mpd_isinfinite(a));
|
||||
if (mpd_ispositive(a)) {
|
||||
mpd_qcopy(result, a, status);
|
||||
}
|
||||
else {
|
||||
mpd_clear_flags(result);
|
||||
mpd_qmaxcoeff(result, ctx, status);
|
||||
if (mpd_isnan(result)) {
|
||||
return;
|
||||
}
|
||||
mpd_set_flags(result, MPD_NEG);
|
||||
result->exp = mpd_etop(ctx);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
mpd_workcontext(&workctx, ctx);
|
||||
|
@ -5814,9 +5812,8 @@ mpd_qnext_toward(mpd_t *result, const mpd_t *a, const mpd_t *b,
|
|||
{
|
||||
int c;
|
||||
|
||||
if (mpd_isnan(a) || mpd_isnan(b)) {
|
||||
if (mpd_qcheck_nans(result, a, b, ctx, status))
|
||||
return;
|
||||
if (mpd_qcheck_nans(result, a, b, ctx, status)) {
|
||||
return;
|
||||
}
|
||||
|
||||
c = _mpd_cmp(a, b);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue