1#include <gmp.h>
2
3
4/* Definitions according to limb size used. */
5#if BITS_PER_MP_LIMB == 32
6# define MAX_DIG_PER_LIMB 9
7# define MAX_FAC_PER_LIMB 1000000000UL
8#elif BITS_PER_MP_LIMB == 64
9# define MAX_DIG_PER_LIMB 19
10# define MAX_FAC_PER_LIMB 10000000000000000000ULL
11#else
12# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
13#endif
14
15
16/* Local data structure. */
17const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1] =
18{ 0, 10, 100,
19 1000, 10000, 100000L,
20 1000000L, 10000000L, 100000000L,
21 1000000000L
22#if BITS_PER_MP_LIMB > 32
23 , 10000000000ULL, 100000000000ULL,
24 1000000000000ULL, 10000000000000ULL, 100000000000000ULL,
25 1000000000000000ULL, 10000000000000000ULL, 100000000000000000ULL,
26 1000000000000000000ULL, 10000000000000000000ULL
27#endif
28#if BITS_PER_MP_LIMB > 64
29 #error "Need to expand tens_in_limb table to" MAX_DIG_PER_LIMB
30#endif
31};
32

source code of glibc/stdlib/tens_in_limb.c