diff options
author | Ulrich Drepper <drepper@redhat.com> | 2008-03-08 04:18:31 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2008-03-08 04:18:31 +0000 |
commit | 72f1012788c07837e841300024ab554b56aa6816 (patch) | |
tree | 85993ccdd192cdafde1f81746020071ffe1af0ad /stdlib/tens_in_limb.c | |
parent | 443db178899d14a9c54248d95675fee44d718e05 (diff) | |
download | glibc-72f1012788c07837e841300024ab554b56aa6816.tar.gz glibc-72f1012788c07837e841300024ab554b56aa6816.tar.xz glibc-72f1012788c07837e841300024ab554b56aa6816.zip |
* stdlib/Makefile (aux): Add tens_in_limb.
* stdlib/strtod_l.c: Move _tens_in_limb definition to... * stdlib/tens_in_limb.c: ...here. New file.
Diffstat (limited to 'stdlib/tens_in_limb.c')
-rw-r--r-- | stdlib/tens_in_limb.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/stdlib/tens_in_limb.c b/stdlib/tens_in_limb.c new file mode 100644 index 0000000000..b6e35aa35a --- /dev/null +++ b/stdlib/tens_in_limb.c @@ -0,0 +1,31 @@ +#include <gmp.h> + + +/* Definitions according to limb size used. */ +#if BITS_PER_MP_LIMB == 32 +# define MAX_DIG_PER_LIMB 9 +# define MAX_FAC_PER_LIMB 1000000000UL +#elif BITS_PER_MP_LIMB == 64 +# define MAX_DIG_PER_LIMB 19 +# define MAX_FAC_PER_LIMB 10000000000000000000ULL +#else +# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for" +#endif + + +/* Local data structure. */ +const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1] = +{ 0, 10, 100, + 1000, 10000, 100000L, + 1000000L, 10000000L, 100000000L, + 1000000000L +#if BITS_PER_MP_LIMB > 32 + , 10000000000ULL, 100000000000ULL, + 1000000000000ULL, 10000000000000ULL, 100000000000000ULL, + 1000000000000000ULL, 10000000000000000ULL, 100000000000000000ULL, + 1000000000000000000ULL, 10000000000000000000ULL +#endif +#if BITS_PER_MP_LIMB > 64 + #error "Need to expand tens_in_limb table to" MAX_DIG_PER_LIMB +#endif +}; |