# mp_bases

**Torbjorn Granlund
**
tege@swox.com

*28 Apr 2003 02:19:56 +0200*

It would be nice to get the mp_bases overhaul designed and
implemented.
For all hosts that have efficient umul_ppmm, we should provide
log(base)/log(2) and log(2)/log(base) with two limb values per
base. umul_ppmm(result, dummy, mp_bases[base].X, inval) then
gives the result.
For other hosts (most notably those providing UltraComputing(tm))
we might want to stay with floating point constants. But we'd
want to provide log(base)/log(2) there too, not just
log(2)/log(base) as we do now. That will save the current
expensive floating-point divisions.
Then we need a nice set of gmp-impl.h macros hiding if we have
floating-point or integer based mp_bases. And the current usage
of chars_per_bit_exactly isn't too nice, which also motivates new
macros.
Would you want to implement this?
--
Torbjörn