div_qr_1 interface
Torbjorn Granlund
tg at gmplib.org
Sun Oct 20 16:42:37 CEST 2013
nisse at lysator.liu.se (Niels Möller) writes:
Torbjorn Granlund <tg at gmplib.org> writes:
> I think x86-64, x86-32, arm32, arm64, powerpc-64, sparc-64 matter.
> Unfortunately, powerpc-64 (and -32) return these types onto the stack
> via an implicit pointer.
Ok, I think I'll stick to using a separate pointer for qh then.
I did not mean to argue against returning a structure. Actually, it is
more efficiently returned than I thought...
Storing qh early may also have the advantage of allowing more tail
calls.
Which tail call?
I'm about to push the first step, with C implementations of mpn_div_qr_1
and mpn_div_qr_1n_pi1.
Should we unconfuse ourselves and users about what type of inverse is to
be passed? The "pi1" moniker might be replaced. How many one-limb
inverse types do we currently consider?
I don't think fully descriptive names would be viable, since they would
be too long. For plain 1/b mod \beta^k, perhaps use _bik, where k is a
digit.
For the various Euclidean inverses, _iak, _ibk, _ick is one alternative,
for "type a", "type b", etc. Or some other more clever letters.
I was a bit confused here. mpn_div_qr_1 is intended as a public
function.
Indeed. See http://gmplib.org/devel/ for my thinking about division
functions, from a few years back...
--
Torbjörn
More information about the gmp-devel
mailing list