YoushouldhavereceivedcopiesoftheGNUGeneralPublicLicenseandthe GNULesserGeneralPublicLicensealongwiththeGNUMPLibrary.Ifnot,
see https://www.gnu.org/licenses/. */
#include"gmp-impl.h" #include"longlong.h"
/* Middle product of {up,un} and {vp,vn}, write result to {rp,un-vn+3}. Musthaveun>=vn>=1.
Neither input buffer may overlap with the output buffer. */
void
mpn_mulmid_basecase (mp_ptr rp,
mp_srcptr up, mp_size_t un,
mp_srcptr vp, mp_size_t vn)
{
mp_limb_t lo, hi; /* last two limbs of output */
mp_limb_t cy;
ASSERT (un >= vn);
ASSERT (vn >= 1);
ASSERT (! MPN_OVERLAP_P (rp, un - vn + 3, up, un));
ASSERT (! MPN_OVERLAP_P (rp, un - vn + 3, vp, vn));
up += vn - 1;
un -= vn - 1;
/* multiply by first limb, store result */
lo = mpn_mul_1 (rp, up, un, vp[0]);
hi = 0;
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.