Lines Matching defs:n*
1 /* mpn_remove -- divide out all multiples of odd mpn number from another mpn
2 number.
25 along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
38 Ouput W = {wp,*wn} allocation need is exactly *wn
43 FIXME: We currently allow any operand overlap. This is quite non mpn-ish
46 we will still need to copy things into wp 50% of the time).
57 mp_size_t npowers;
58 mp_ptr tp, qp, np, pp, qp2, scratch_out;
59 mp_size_t pn, nn, qn, i;
65 ASSERT (vp[0] % 2 != 0); /* 2-adic division wants odd numbers */
73 np = TMP_ALLOC_LIMBS (un + LOG); /* powers of V */
77 /* FIXME: This allocation need indicate a flaw in the current itch mechanism:
78 Which operands not greater than un,un will incur the worst itch? We need
85 npowers = 0;
90 break; /* could not divide by V^npowers */
96 pwpsp[npowers] = pp;
97 pwpsn[npowers] = pn;
98 npowers++;
100 if (((mp_bitcnt_t) 2 << npowers) - 1 > cap)
103 nn = 2 * pn - 1; /* next power will be at least this many limbs */
104 if (nn > qn)
105 break; /* next power would be overlarge */
107 mpn_sqr (np, pp, pn);
108 nn += np[nn] != 0;
109 pp = np;
110 pn = nn;
111 np += nn;
114 pwr = ((mp_bitcnt_t) 1 << npowers) - 1;
116 for (i = npowers - 1; i >= 0; i--)
128 continue; /* could not divide by V^i */