Basecases of mulmod_bnm1.c and sqrmod_bnm1.c

Niels Möller nisse at
Tue Sep 3 16:49:25 CEST 2013

Torbjorn Granlund <tg at> writes:

> I'd say we should call mpn_mul_basecase and mpn_sqr_basecase instead,
> for a few cycles less overhead.

I'm always a bit scared about calling mpn_sqr_basecase, since it may
crash (rather than just run slowly) for sizes above the appropriate

Marco writes:

> True, but the condition ((rn & 1) != 0) can hold even above the thresholds.

Good point. The mpn_mulmod_bnm1 is written to work with any sizes. Most
(or all?) callers use mpn_mulmod_bnm1_next_size, but that may still
produce a pretty large odd number times a small power of two.

As I remember it, there was little gain in going to a very deep
recursion depth here, so below the fft range we round the size up only
to a power of 8.


Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.

More information about the gmp-devel mailing list