From 72f1012788c07837e841300024ab554b56aa6816 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 8 Mar 2008 04:18:31 +0000 Subject: * 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. --- stdlib/tens_in_limb.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 stdlib/tens_in_limb.c (limited to 'stdlib/tens_in_limb.c') 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 + + +/* 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 +}; -- cgit 1.4.1