Home | History | Annotate | Download | only in generic

Lines Matching refs:mn

73    fp and f1p should have room for mn*2+1 limbs.
87 TODO: Should {tp, 2 * mn} be passed as a scratch pointer?
88 Should the call to mpn_fib2_ui() obtain (up to) 2*mn limbs?
92 mpn_fib2m (mp_ptr fp, mp_ptr f1p, mp_srcptr np, mp_size_t nn, mp_srcptr mp, mp_size_t mn)
100 ASSERT (! MPN_OVERLAP_P (fp, MAX(2*mn+1,5), f1p, MAX(2*mn+1,5)));
103 /* Estimate the maximal n such that fibonacci(n) fits in mn limbs. */
105 if (UNLIKELY (ULONG_MAX / (23 * (GMP_NUMB_BITS / 16)) <= mn))
108 nfirst = mn * (23 * (GMP_NUMB_BITS / 16));
112 mbi = (mp_bitcnt_t) mn * GMP_NUMB_BITS;
157 MPN_ZERO (fp + fn, mn - fn);
158 MPN_ZERO (f1p + fn, mn - fn);
162 if (fn == mn)
165 mpn_tdiv_qr (qp, fp, 0, fp, fn, mp, mn);
166 mpn_tdiv_qr (qp, f1p, 0, f1p, fn, mp, mn);
180 tp = TMP_ALLOC_LIMBS (2 * mn + (mn < 2));
192 mpn_sqr (tp, fp, mn);
193 mpn_sqr (fp, f1p, mn);
196 f1p[2 * mn] = mpn_add_n (f1p, tp, fp, 2 * mn);
207 fp[2 * mn] = 1 + mpn_rsblsh2_n (fp, fp, tp, 2 * mn);
208 MPN_INCR_U(fp, 2 * mn + 1, (1 ^ pb) << 1); /* possible +2 */
209 fp[2 * mn] = (fp[2 * mn] - 1) & GMP_NUMB_MAX;
214 c = mpn_lshift (tp, tp, 2 * mn, 2);
216 c -= mpn_sub_n (fp, tp, fp, 2 * mn);
217 fp[2 * mn] = c & GMP_NUMB_MAX;
220 neg = fp[2 * mn] == GMP_NUMB_MAX;
233 rp[2 * mn] = f1p[2 * mn] + 1 - mpn_sub_n (rp, f1p, fp, 2 * mn);
236 fp [2 * mn] = 1 ^ mpn_neg (fp, fp, 2 * mn);
240 neg = abs_sub_n (rp, fp, f1p, 2 * mn + 1) < 0;
243 mpn_tdiv_qr (tp, fp, 0, fp, 2 * mn + 1, mp, mn);
244 mpn_tdiv_qr (tp, f1p, 0, f1p, 2 * mn + 1, mp, mn);