YoushouldhavereceivedcopiesoftheGNUGeneralPublicLicenseandthe GNULesserGeneralPublicLicensealongwiththeGNUMPLibrary.Ifnot,
see https://www.gnu.org/licenses/. */
if (ql <= 0)
{ if (num != rem)
{
np = PTR (num);
MPN_COPY (rp, np, nl);
SIZ (rem) = SIZ (num);
} /* This needs to follow the assignment to rem, in case the
numerator and quotient are the same. */
SIZ (quot) = 0; return;
}
qp = MPZ_REALLOC (quot, ql);
TMP_MARK;
np = PTR (num);
dp = PTR (den);
/* FIXME: We should think about how to handle the temporary allocation. Perhapsmpn_tdiv_qrshouldhandleit,sinceitanywayoftenneedsto
allocate temp space. */
/* Copy denominator to temporary space if it overlaps with the quotient
or remainder. */ if (dp == rp || dp == qp)
{
mp_ptr tp;
tp = TMP_ALLOC_LIMBS (dl);
MPN_COPY (tp, dp, dl);
dp = tp;
} /* Copy numerator to temporary space if it overlaps with the quotient or
remainder. */ if (np == rp || np == qp)
{
mp_ptr tp;
tp = TMP_ALLOC_LIMBS (nl);
MPN_COPY (tp, np, nl);
np = tp;
}
for (n0 = 0; *dp == 0; ++dp)
{
rp [n0++] = *np++;
--nl;
}
mpn_tdiv_qr (qp, rp + n0, 0L, np, nl, dp, dl - n0);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.