Lines Matching refs:dn

61 	   mp_srcptr np, mp_size_t nn, mp_srcptr dp, mp_size_t dn,
64 mp_size_t qn = nn - dn + 1;
73 if (dn >= qn)
74 refmpn_mul (tp, dp, dn, qp, qn);
76 refmpn_mul (tp, qp, qn, dp, dn);
79 ASSERT_NOCARRY (refmpn_sub (tp, tp, nn+1, dp, dn));
89 printf ("D= "); dumpy (dp, dn);
92 { printf ("R= "); dumpy (rp, dn); }
94 printf ("nn = %ld, dn = %ld, qn = %ld\n", nn, dn, qn);
100 if (!(nn == dn || mpn_zero_p (tp + dn, nn - dn)) || mpn_cmp (tp, dp, dn) >= 0)
106 if (rp && mpn_cmp (rp, tp, dn) != 0)
131 mp_size_t maxnn, maxdn, nn, dn, clearn, i;
187 dn = SIZ (d);
189 MPN_COPY (dnp, dup, dn);
190 dnp[dn - 1] |= GMP_NUMB_HIGHBIT;
196 ASSERT_ALWAYS (nn >= dn);
208 while (nn > maxnn || nn < dn);
212 ASSERT_ALWAYS (dn <= maxdn);
224 dnp[dn - 1] = GMP_NUMB_MAX;
225 dup[dn - 1] = GMP_NUMB_MAX;
236 mpn_sub_1 (np + nn - dn, dnp, dn, urandom ());
239 mpn_add_1 (np + nn - dn, dnp, dn, urandom ());
243 if (dn >= 2)
244 invert_pi1 (dinv, dnp[dn - 1], dnp[dn - 2]);
252 qp[nn - dn + 1] = qran1;
257 if ((double) (nn - dn) * dn < 1e5)
260 if (dn > 2)
263 if (nn > dn)
264 MPN_COPY (qp, junkp, nn - dn);
265 qp[nn - dn] = mpn_sbpi1_div_qr (qp, rp, nn, dnp, dn, dinv.inv32);
266 check_one (qp, rp, np, nn, dnp, dn, "mpn_sbpi1_div_qr", 0);
270 if (dn > 2)
273 if (nn > dn)
274 MPN_COPY (qp, junkp, nn - dn);
275 qp[nn - dn] = mpn_sbpi1_divappr_q (qp, rp, nn, dnp, dn, dinv.inv32);
276 check_one (qp, NULL, np, nn, dnp, dn, "mpn_sbpi1_divappr_q", 1);
280 if (dn > 2)
283 if (nn > dn)
284 MPN_COPY (qp, junkp, nn - dn);
285 qp[nn - dn] = mpn_sbpi1_div_q (qp, rp, nn, dnp, dn, dinv.inv32);
286 check_one (qp, NULL, np, nn, dnp, dn, "mpn_sbpi1_div_q", 0);
290 itch = mpn_sec_div_qr_itch (nn, dn);
298 if (nn >= dn)
299 MPN_COPY (qp, junkp, nn - dn + 1);
300 qp[nn - dn] = mpn_sec_div_qr (qp, rp, nn, dup, dn, scratch);
302 check_one (qp, rp, np, nn, dup, dn, "mpn_sec_div_qr (unnorm)", 0);
305 itch = mpn_sec_div_r_itch (nn, dn);
313 mpn_sec_div_r (rp, nn, dup, dn, scratch);
317 check_one (qp, rp, np, nn, dup, dn, "mpn_sec_div_r (unnorm)", 0);
320 itch = mpn_sec_div_qr_itch (nn, dn);
324 if (nn >= dn)
325 MPN_COPY (qp, junkp, nn - dn + 1);
326 qp[nn - dn] = mpn_sec_div_qr (qp, rp, nn, dnp, dn, scratch);
328 check_one (qp, rp, np, nn, dnp, dn, "mpn_sec_div_qr (norm)", 0);
331 itch = mpn_sec_div_r_itch (nn, dn);
334 mpn_sec_div_r (rp, nn, dnp, dn, scratch);
338 check_one (qp, rp, np, nn, dnp, dn, "mpn_sec_div_r (norm)", 0);
342 if (dn >= 6 && nn - dn >= 3)
345 if (nn > dn)
346 MPN_COPY (qp, junkp, nn - dn);
347 qp[nn - dn] = mpn_dcpi1_div_qr (qp, rp, nn, dnp, dn, &dinv);
348 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
350 check_one (qp, rp, np, nn, dnp, dn, "mpn_dcpi1_div_qr", 0);
354 if (dn >= 6 && nn - dn >= 3)
357 if (nn > dn)
358 MPN_COPY (qp, junkp, nn - dn);
359 qp[nn - dn] = mpn_dcpi1_divappr_q (qp, rp, nn, dnp, dn, &dinv);
360 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
362 check_one (qp, NULL, np, nn, dnp, dn, "mpn_dcpi1_divappr_q", 1);
366 if (dn >= 6 && nn - dn >= 3)
369 if (nn > dn)
370 MPN_COPY (qp, junkp, nn - dn);
371 qp[nn - dn] = mpn_dcpi1_div_q (qp, rp, nn, dnp, dn, &dinv);
372 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
374 check_one (qp, NULL, np, nn, dnp, dn, "mpn_dcpi1_div_q", 0);
378 if (nn - dn > 2 && dn >= 2)
380 itch = mpn_mu_div_qr_itch (nn, dn, 0);
387 MPN_COPY (qp, junkp, nn - dn);
388 MPN_ZERO (rp, dn);
389 rp[dn] = rran1;
390 qp[nn - dn] = mpn_mu_div_qr (qp, rp, np, nn, dnp, dn, scratch);
392 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
393 ASSERT_ALWAYS (rp[-1] == rran0); ASSERT_ALWAYS (rp[dn] == rran1);
394 check_one (qp, rp, np, nn, dnp, dn, "mpn_mu_div_qr", 0);
398 if (nn - dn > 2 && dn >= 2)
400 itch = mpn_mu_divappr_q_itch (nn, dn, 0);
407 MPN_COPY (qp, junkp, nn - dn);
408 qp[nn - dn] = mpn_mu_divappr_q (qp, np, nn, dnp, dn, scratch);
410 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
411 check_one (qp, NULL, np, nn, dnp, dn, "mpn_mu_divappr_q", 4);
415 if (nn - dn > 2 && dn >= 2)
417 itch = mpn_mu_div_q_itch (nn, dn, 0);
424 MPN_COPY (qp, junkp, nn - dn);
425 qp[nn - dn] = mpn_mu_div_q (qp, np, nn, dnp, dn, scratch);
427 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
428 check_one (qp, NULL, np, nn, dnp, dn, "mpn_mu_div_q", 0);
440 MPN_COPY (qp, junkp, nn - dn + 1);
441 mpn_div_q (qp, np, nn, dup, dn, scratch);
443 ASSERT_ALWAYS (qp[-1] == qran0); ASSERT_ALWAYS (qp[nn - dn + 1] == qran1);
444 check_one (qp, NULL, np, nn, dup, dn, "mpn_div_q", 0);
447 if (dn >= 2 && nn >= 2)
455 qh = mpn_divrem_2 (qp, 0, rp, nn, dnp + dn - 2);
459 check_one (qp, rp, np, nn, dnp + dn - 2, 2, "mpn_divrem_2", 0);
466 qh = mpn_div_qr_2 (qp, rp, np, nn, dup + dn - 2);
470 check_one (qp, rp, np, nn, dup + dn - 2, 2, "mpn_div_qr_2", 0);
472 if (dn >= 1 && nn >= 1)
477 rp[0] = mpn_div_qr_1 (qp, &qh, np, nn, dnp[dn - 1]);
480 check_one (qp, rp, np, nn, dnp + dn - 1, 1, "mpn_div_qr_1", 0);