Lines Matching defs:an
53 ref_mulmod_bnm1 (mp_ptr rp, mp_size_t rn, mp_srcptr ap, mp_size_t an, mp_srcptr bp, mp_size_t bn)
57 ASSERT (0 < an && an <= rn);
60 if (an >= bn)
61 refmpn_mul (rp, ap, an, bp, bn);
63 refmpn_mul (rp, bp, bn, ap, an);
64 an += bn;
65 if (an > rn) {
66 cy = mpn_add (rp, rp, rn, rp + rn, an - rn);
115 mp_size_t an,bn,rn,n;
122 /* We generate an in the MIN_N <= n <= (1 << size_range). */
132 both an and bn >= rn/2 */
133 an = ((n+1) >> 1) + gmp_urandomm_ui (rands, (n+1) >> 1);
137 full product with n/2 < an+bn <= n. */
138 an = 1 + gmp_urandomm_ui (rands, n - 1);
139 if (an >= n/2)
140 bn = 1 + gmp_urandomm_ui (rands, n - an);
142 bn = n/2 + 1 - an + gmp_urandomm_ui (rands, (n+1)/2);
145 /* Make sure an >= bn */
146 if (an < bn)
147 MP_SIZE_T_SWAP (an, bn);
149 mpn_random2 (ap, an);
157 MPN_COPY (ap, ap + (n >> 1), an - (n >> 1));
158 MPN_ZERO (ap + an - (n >> 1) , n - an);
161 x = (n == an) ? 0 : gmp_urandomm_ui (rands, n - an);
168 rn = MIN(n, an + bn);
173 itch = mpn_mulmod_bnm1_itch (n, an, bn);
179 mpn_mulmod_bnm1 ( pp, n, ap, an, bp, bn, scratch);
180 ref_mulmod_bnm1 (refp, n, ap, an, bp, bn);
185 printf ("ERROR in test %d, an = %d, bn = %d, n = %d\n",
186 test, (int) an, (int) bn, (int) n);
207 mpn_dump (ap, an);