1 /* mpn_preinv_mod_1 (up, un, d, dinv) -- Divide (UP,,UN) by the normalized D.
2 DINV should be 2^(2*GMP_LIMB_BITS) / D - 2^GMP_LIMB_BITS.
3 Return the single-limb remainder.
5 Copyright 1991, 1993, 1994, 2000, 2001, 2002, 2004, 2005 Free Software
8 This file is part of the GNU MP Library.
10 The GNU MP Library is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by the
12 Free Software Foundation; either version 3 of the License, or (at your
13 option) any later version.
15 The GNU MP Library is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
20 You should have received a copy of the GNU Lesser General Public License along
21 with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
28 /* This function used to be documented, but is now considered obsolete. It
29 continues to exist for binary compatibility, even when not required
33 mpn_preinv_mod_1 (mp_srcptr up, mp_size_t un, mp_limb_t d, mp_limb_t dinv)
40 ASSERT (d & GMP_LIMB_HIGHBIT);
46 for (i = un - 2; i >= 0; i--)
49 udiv_qrnnd_preinv (dummy, r, r, n0, d, dinv);