YoushouldhavereceivedcopiesoftheGNUGeneralPublicLicenseandthe GNULesserGeneralPublicLicensealongwiththeGNUMPLibrary.Ifnot,
see https://www.gnu.org/licenses/. */
#include"gmp-impl.h" #include"longlong.h"
/* The core operation is a multiply of PREC(r) limbs from u by v, producing eitherPREC(r)orPREC(r)+1resultlimbs.IfuisshorterthanPREC(r), thenwetakeonlyasmuchasithas.Ifuislongerweincorporatea carryfromthelowerlimbs.
/* high limb of top product */
i = excess - 1;
umul_ppmm (cin, lo, up[i], vl_shifted);
/* and carry bit out of products below that, if any */ for (;;)
{
i--; if (i < 0) break;
umul_ppmm (hi, next_lo, up[i], vl_shifted);
lo >>= GMP_NAIL_BITS;
ADDC_LIMB (cbit, sum, hi, lo);
cin += cbit;
lo = next_lo;
/* Continue only if the sum is GMP_NUMB_MAX. GMP_NUMB_MAX is the onlyvalueacarryfrombelowcanpropagateacross.Ifwe've justseenthecarryout(ie.cbit!=0)thensum!=GMP_NUMB_MAX,
so this test stops us for that case too. */ if (LIKELY (sum != GMP_NUMB_MAX)) break;
}
¤ 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.0.14Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
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.