-// Tabelle: enthält zu jeder Basis b (2 <= b <= 36)
-// - eine Kettenbruchapproximation num/den von intDsize*log(2)/log(b)
-// (num/den >= intDsize*log(2)/log(b), mit num <= 2^10)
-// - k-1 und b^k mit b^k < 2^intDsize, k maximal.
- typedef struct { /* uintW num,den; */ uintC k_1; uintD b_hoch_k; } power_table_entry;
- static power_table_entry table [36-2+1] = {
- #if (intDsize==8)
- { /* 8, 1, */ 7-1, 2*2*2*2*2*2*2},
- { /* 106, 21, */ 5-1, 3*3*3*3*3},
- { /* 4, 1, */ 3-1, 4*4*4},
- { /* 789,229, */ 3-1, 5*5*5},
- { /* 359,116, */ 3-1, 6*6*6},
- { /* 436,153, */ 2-1, 7*7},
- { /* 8, 3, */ 2-1, 8*8},
- { /* 53, 21, */ 2-1, 9*9},
- { /* 525,218, */ 2-1, 10*10},
- { /* 1006,435, */ 2-1, 11*11},
- { /* 665,298, */ 2-1, 12*12},
- { /* 988,457, */ 2-1, 13*13},
- { /* 872,415, */ 2-1, 14*14},
- { /* 987,482, */ 2-1, 15*15},
- { /* 2, 1, */ 1-1, 16},
- { /* 869,444, */ 1-1, 17},
- { /* 871,454, */ 1-1, 18},
- { /* 597,317, */ 1-1, 19},
- { /* 87, 47, */ 1-1, 20},
- { /* 989,543, */ 1-1, 21},
- { /* 949,529, */ 1-1, 22},
- { /* 191,108, */ 1-1, 23},
- { /* 930,533, */ 1-1, 24},
- { /* 789,458, */ 1-1, 25},
- { /* 691,406, */ 1-1, 26},
- { /* 461,274, */ 1-1, 27},
- { /* 218,131, */ 1-1, 28},
- { /* 690,419, */ 1-1, 29},
- { /* 494,303, */ 1-1, 30},
- { /* 633,392, */ 1-1, 31},
- { /* 8, 5, */ 1-1, 32},
- { /* 766,483, */ 1-1, 33},
- { /* 629,400, */ 1-1, 34},
- { /* 967,620, */ 1-1, 35},
- { /* 359,232, */ 1-1, 36},
- #endif
- #if (intDsize==16)
- { /* 16, 1, */ 15-1, 2*2*2*2*2*2*2*2*2*2*2*2*2*2*2},
- { /* 212, 21, */ 10-1, 3*3*3*3*3*3*3*3*3*3},
- { /* 8, 1, */ 7-1, 4*4*4*4*4*4*4},
- { /* 379, 55, */ 6-1, 5*5*5*5*5*5},
- { /* 359, 58, */ 6-1, 6*6*6*6*6*6},
- { /* 872,153, */ 5-1, 7*7*7*7*7},
- { /* 16, 3, */ 5-1, 8*8*8*8*8},
- { /* 106, 21, */ 5-1, 9*9*9*9*9},
- { /* 525,109, */ 4-1, 10*10*10*10},
- { /* 1013,219, */ 4-1, 11*11*11*11},
- { /* 665,149, */ 4-1, 12*12*12*12},
- { /* 761,176, */ 4-1, 13*13*13*13},
- { /* 685,163, */ 4-1, 14*14*14*14},
- { /* 987,241, */ 4-1, 15*15*15*15},
- { /* 4, 1, */ 3-1, 16*16*16},
- { /* 869,222, */ 3-1, 17*17*17},
- { /* 871,227, */ 3-1, 18*18*18},
- { /* 113, 30, */ 3-1, 19*19*19},
- { /* 174, 47, */ 3-1, 20*20*20},
- { /* 51, 14, */ 3-1, 21*21*21},
- { /* 653,182, */ 3-1, 22*22*22},
- { /* 191, 54, */ 3-1, 23*23*23},
- { /* 677,194, */ 3-1, 24*24*24},
- { /* 789,229, */ 3-1, 25*25*25},
- { /* 691,203, */ 3-1, 26*26*26},
- { /* 461,137, */ 3-1, 27*27*27},
- { /* 436,131, */ 3-1, 28*28*28},
- { /* 359,109, */ 3-1, 29*29*29},
- { /* 988,303, */ 3-1, 30*30*30},
- { /* 633,196, */ 3-1, 31*31*31},
- { /* 16, 5, */ 3-1, 32*32*32},
- { /* 203, 64, */ 3-1, 33*33*33},
- { /* 629,200, */ 3-1, 34*34*34},
- { /* 967,310, */ 3-1, 35*35*35},
- { /* 359,116, */ 3-1, 36*36*36},
- #endif
- #if (intDsize==32)
- { /* 32, 1, */ 31-1, 2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL*2UL},
- { /* 424, 21, */ 20-1, 3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL*3UL},
- { /* 16, 1, */ 15-1, 4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL*4UL},
- { /* 758, 55, */ 13-1, 5UL*5UL*5UL*5UL*5UL*5UL*5UL*5UL*5UL*5UL*5UL*5UL*5UL},
- { /* 359, 29, */ 12-1, 6UL*6UL*6UL*6UL*6UL*6UL*6UL*6UL*6UL*6UL*6UL*6UL},
- { /* 57, 5, */ 11-1, 7UL*7UL*7UL*7UL*7UL*7UL*7UL*7UL*7UL*7UL*7UL},
- { /* 32, 3, */ 10-1, 8UL*8UL*8UL*8UL*8UL*8UL*8UL*8UL*8UL*8UL},
- { /* 212, 21, */ 10-1, 9UL*9UL*9UL*9UL*9UL*9UL*9UL*9UL*9UL*9UL},
- { /* 289, 30, */ 9-1, 10UL*10UL*10UL*10UL*10UL*10UL*10UL*10UL*10UL},
- { /* 990,107, */ 9-1, 11UL*11UL*11UL*11UL*11UL*11UL*11UL*11UL*11UL},
- { /* 848, 95, */ 8-1, 12UL*12UL*12UL*12UL*12UL*12UL*12UL*12UL},
- { /* 761, 88, */ 8-1, 13UL*13UL*13UL*13UL*13UL*13UL*13UL*13UL},
- { /* 1017,121, */ 8-1, 14UL*14UL*14UL*14UL*14UL*14UL*14UL*14UL},
- { /* 901,110, */ 8-1, 15UL*15UL*15UL*15UL*15UL*15UL*15UL*15UL},
- { /* 8, 1, */ 7-1, 16UL*16UL*16UL*16UL*16UL*16UL*16UL},
- { /* 869,111, */ 7-1, 17UL*17UL*17UL*17UL*17UL*17UL*17UL},
- { /* 683, 89, */ 7-1, 18UL*18UL*18UL*18UL*18UL*18UL*18UL},
- { /* 113, 15, */ 7-1, 19UL*19UL*19UL*19UL*19UL*19UL*19UL},
- { /* 348, 47, */ 7-1, 20UL*20UL*20UL*20UL*20UL*20UL*20UL},
- { /* 51, 7, */ 7-1, 21UL*21UL*21UL*21UL*21UL*21UL*21UL},
- { /* 653, 91, */ 7-1, 22UL*22UL*22UL*22UL*22UL*22UL*22UL},
- { /* 191, 27, */ 7-1, 23UL*23UL*23UL*23UL*23UL*23UL*23UL},
- { /* 677, 97, */ 6-1, 24UL*24UL*24UL*24UL*24UL*24UL},
- { /* 379, 55, */ 6-1, 25UL*25UL*25UL*25UL*25UL*25UL},
- { /* 851,125, */ 6-1, 26UL*26UL*26UL*26UL*26UL*26UL},
- { /* 922,137, */ 6-1, 27UL*27UL*27UL*27UL*27UL*27UL},
- { /* 872,131, */ 6-1, 28UL*28UL*28UL*28UL*28UL*28UL},
- { /* 718,109, */ 6-1, 29UL*29UL*29UL*29UL*29UL*29UL},
- { /* 150, 23, */ 6-1, 30UL*30UL*30UL*30UL*30UL*30UL},
- { /* 633, 98, */ 6-1, 31UL*31UL*31UL*31UL*31UL*31UL},
- { /* 32, 5, */ 6-1, 32UL*32UL*32UL*32UL*32UL*32UL},
- { /* 203, 32, */ 6-1, 33UL*33UL*33UL*33UL*33UL*33UL},
- { /* 629,100, */ 6-1, 34UL*34UL*34UL*34UL*34UL*34UL},
- { /* 967,155, */ 6-1, 35UL*35UL*35UL*35UL*35UL*35UL},
- { /* 359, 58, */ 6-1, 36UL*36UL*36UL*36UL*36UL*36UL},
- #endif
- #if (intDsize==64)
- { /* 64, 1, */ 63-1, 2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL*2ULL},
- { /* 848, 21, */ 40-1, 3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL*3ULL},
- { /* 32, 1, */ 31-1, 4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL*4ULL},
- { /* 634, 23, */ 27-1, 5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL*5ULL},
- { /* 718, 29, */ 24-1, 6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL*6ULL},
- { /* 114, 5, */ 22-1, 7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL*7ULL},
- { /* 64, 3, */ 21-1, 8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL*8ULL},
- { /* 424, 21, */ 20-1, 9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL*9ULL},
- { /* 289, 15, */ 19-1, 10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL*10ULL},
- { /* 1018, 55, */ 18-1, 11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL*11ULL},
- { /* 607, 34, */ 17-1, 12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL*12ULL},
- { /* 761, 44, */ 17-1, 13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL*13ULL},
- { /* 975, 58, */ 16-1, 14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL*14ULL},
- { /* 901, 55, */ 16-1, 15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL*15ULL},
- { /* 16, 1, */ 15-1, 16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL*16ULL},
- { /* 595, 38, */ 15-1, 17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL*17ULL},
- { /* 1013, 66, */ 15-1, 18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL*18ULL},
- { /* 226, 15, */ 15-1, 19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL*19ULL},
- { /* 696, 47, */ 14-1, 20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL*20ULL},
- { /* 102, 7, */ 14-1, 21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL*21ULL},
- { /* 775, 54, */ 14-1, 22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL*22ULL},
- { /* 382, 27, */ 14-1, 23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL*23ULL},
- { /* 1019, 73, */ 13-1, 24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL*24ULL},
- { /* 758, 55, */ 13-1, 25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL*25ULL},
- { /* 994, 73, */ 13-1, 26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL*26ULL},
- { /* 673, 50, */ 13-1, 27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL*27ULL},
- { /* 892, 67, */ 13-1, 28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL*28ULL},
- { /* 830, 63, */ 13-1, 29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL*29ULL},
- { /* 300, 23, */ 13-1, 30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL*30ULL},
- { /* 633, 49, */ 12-1, 31ULL*31ULL*31ULL*31ULL*31ULL*31ULL*31ULL*31ULL*31ULL*31ULL*31ULL*31ULL},
- { /* 64, 5, */ 12-1, 32ULL*32ULL*32ULL*32ULL*32ULL*32ULL*32ULL*32ULL*32ULL*32ULL*32ULL*32ULL},
- { /* 203, 16, */ 12-1, 33ULL*33ULL*33ULL*33ULL*33ULL*33ULL*33ULL*33ULL*33ULL*33ULL*33ULL*33ULL},
- { /* 629, 50, */ 12-1, 34ULL*34ULL*34ULL*34ULL*34ULL*34ULL*34ULL*34ULL*34ULL*34ULL*34ULL*34ULL},
- { /* 836, 67, */ 12-1, 35ULL*35ULL*35ULL*35ULL*35ULL*35ULL*35ULL*35ULL*35ULL*35ULL*35ULL*35ULL},
- { /* 359, 29, */ 12-1, 36ULL*36ULL*36ULL*36ULL*36ULL*36ULL*36ULL*36ULL*36ULL*36ULL*36ULL*36ULL},
- #endif
- };
-