MathgeomGLS

Форк
0
92 строки · 7.7 Кб
1
{$IF CompilerVersion < 29.0}
2
  {$IF (DEFINED(WIN32) or DEFINED(CPUX86)) AND NOT DEFINED(CPU32BITS)}
3
    {$DEFINE CPU32BITS}
4
  {$IFEND}
5
  {$IF (DEFINED(WIN64) OR DEFINED(CPUX64)) AND NOT DEFINED(CPU64BITS)}
6
    {$DEFINE CPU64BITS}
7
  {$IFEND}
8
{$IFEND}
9

10
const
11
  CMaxFactorShift = 24;
12
//{$IFDEF CPU64BITS}
13
//  // Maximum powers of given bases that fit into UInt64
14
//  CBaseInfos: array[TNumberBase] of BigInteger.TNumberBaseInfo =
15
//  (
16
//    (MaxPower:  9223372036854775808; MaxDigits: 63; PowerofTwo:  True; MaxFactor: 266305),  // Base 2
17
//    (MaxPower: 12157665459056928801; MaxDigits: 40; PowerofTwo: False; MaxFactor: 264631),  // Base 3
18
//    (MaxPower:  4611686018427387904; MaxDigits: 31; PowerofTwo:  True; MaxFactor: 270600),  // Base 4
19
//    (MaxPower:  7450580596923828125; MaxDigits: 27; PowerofTwo: False; MaxFactor: 267613),  // Base 5
20
//    (MaxPower:  4738381338321616896; MaxDigits: 24; PowerofTwo: False; MaxFactor: 270430),  // Base 6
21
//    (MaxPower:  3909821048582988049; MaxDigits: 22; PowerofTwo: False; MaxFactor: 271644),  // Base 7
22
//    (MaxPower:  9223372036854775808; MaxDigits: 21; PowerofTwo:  True; MaxFactor: 266305),  // Base 8
23
//    (MaxPower: 12157665459056928801; MaxDigits: 20; PowerofTwo: False; MaxFactor: 264631),  // Base 9
24
//    (MaxPower: 10000000000000000000; MaxDigits: 19; PowerofTwo: False; MaxFactor: 265813),  // Base 10
25
//    (MaxPower:  5559917313492231481; MaxDigits: 18; PowerofTwo: False; MaxFactor: 269428),  // Base 11
26
//    (MaxPower:  2218611106740436992; MaxDigits: 17; PowerofTwo: False; MaxFactor: 275287),  // Base 12
27
//    (MaxPower:  8650415919381337933; MaxDigits: 17; PowerofTwo: False; MaxFactor: 266697),  // Base 13
28
//    (MaxPower:  2177953337809371136; MaxDigits: 16; PowerofTwo: False; MaxFactor: 275408),  // Base 14
29
//    (MaxPower:  6568408355712890625; MaxDigits: 16; PowerofTwo: False; MaxFactor: 268391),  // Base 15
30
//    (MaxPower:  1152921504606846976; MaxDigits: 15; PowerofTwo:  True; MaxFactor: 279620),  // Base 16
31
//    (MaxPower:  2862423051509815793; MaxDigits: 15; PowerofTwo: False; MaxFactor: 273637),  // Base 17
32
//    (MaxPower:  6746640616477458432; MaxDigits: 15; PowerofTwo: False; MaxFactor: 268226),  // Base 18
33
//    (MaxPower: 15181127029874798299; MaxDigits: 15; PowerofTwo: False; MaxFactor: 263300),  // Base 19
34
//    (MaxPower:  1638400000000000000; MaxDigits: 14; PowerofTwo: False; MaxFactor: 277277),  // Base 20
35
//    (MaxPower:  3243919932521508681; MaxDigits: 14; PowerofTwo: False; MaxFactor: 272834),  // Base 21
36
//    (MaxPower:  6221821273427820544; MaxDigits: 14; PowerofTwo: False; MaxFactor: 268728),  // Base 22
37
//    (MaxPower: 11592836324538749809; MaxDigits: 14; PowerofTwo: False; MaxFactor: 264918),  // Base 23
38
//    (MaxPower:   876488338465357824; MaxDigits: 13; PowerofTwo: False; MaxFactor: 281476),  // Base 24
39
//    (MaxPower:  1490116119384765625; MaxDigits: 13; PowerofTwo: False; MaxFactor: 277906),  // Base 25
40
//    (MaxPower:  2481152873203736576; MaxDigits: 13; PowerofTwo: False; MaxFactor: 274560),  // Base 26
41
//    (MaxPower:  4052555153018976267; MaxDigits: 13; PowerofTwo: False; MaxFactor: 271417),  // Base 27
42
//    (MaxPower:  6502111422497947648; MaxDigits: 13; PowerofTwo: False; MaxFactor: 268454),  // Base 28
43
//    (MaxPower: 10260628712958602189; MaxDigits: 13; PowerofTwo: False; MaxFactor: 265657),  // Base 29
44
//    (MaxPower: 15943230000000000000; MaxDigits: 13; PowerofTwo: False; MaxFactor: 263009),  // Base 30
45
//    (MaxPower:   787662783788549761; MaxDigits: 12; PowerofTwo: False; MaxFactor: 282205),  // Base 31
46
//    (MaxPower:  1152921504606846976; MaxDigits: 12; PowerofTwo:  True; MaxFactor: 279620),  // Base 32
47
//    (MaxPower:  1667889514952984961; MaxDigits: 12; PowerofTwo: False; MaxFactor: 277159),  // Base 33
48
//    (MaxPower:  2386420683693101056; MaxDigits: 12; PowerofTwo: False; MaxFactor: 274813),  // Base 34
49
//    (MaxPower:  3379220508056640625; MaxDigits: 12; PowerofTwo: False; MaxFactor: 272572),  // Base 35
50
//    (MaxPower:  4738381338321616896; MaxDigits: 12; PowerofTwo: False; MaxFactor: 270430)   // Base 36
51
//  );
52
//{$ELSE}
53
  // Maximum powers of given bases that fit into UInt32
54
  CBaseInfos: array[TNumberBase] of BigInteger.TNumberBaseInfo =
55
  (
56
    (MaxPower:           2147483648; MaxDigits: 31; PowerofTwo:  True; MaxFactor: 541201),  // Base 2
57
    (MaxPower:           3486784401; MaxDigits: 20; PowerofTwo: False; MaxFactor: 529262),  // Base 3
58
    (MaxPower:           1073741824; MaxDigits: 15; PowerofTwo:  True; MaxFactor: 559241),  // Base 4
59
    (MaxPower:           1220703125; MaxDigits: 13; PowerofTwo: False; MaxFactor: 555812),  // Base 5
60
    (MaxPower:           2176782336; MaxDigits: 12; PowerofTwo: False; MaxFactor: 540859),  // Base 6
61
    (MaxPower:           1977326743; MaxDigits: 11; PowerofTwo: False; MaxFactor: 543288),  // Base 7
62
    (MaxPower:           1073741824; MaxDigits: 10; PowerofTwo:  True; MaxFactor: 559241),  // Base 8
63
    (MaxPower:           3486784401; MaxDigits: 10; PowerofTwo: False; MaxFactor: 529262),  // Base 9
64
    (MaxPower:           1000000000; MaxDigits:  9; PowerofTwo: False; MaxFactor: 561161),  // Base 10
65
    (MaxPower:           2357947691; MaxDigits:  9; PowerofTwo: False; MaxFactor: 538856),  // Base 11
66
    (MaxPower:            429981696; MaxDigits:  8; PowerofTwo: False; MaxFactor: 584986),  // Base 12
67
    (MaxPower:            815730721; MaxDigits:  8; PowerofTwo: False; MaxFactor: 566730),  // Base 13
68
    (MaxPower:           1475789056; MaxDigits:  8; PowerofTwo: False; MaxFactor: 550816),  // Base 14
69
    (MaxPower:           2562890625; MaxDigits:  8; PowerofTwo: False; MaxFactor: 536783),  // Base 15
70
    (MaxPower:            268435456; MaxDigits:  7; PowerofTwo:  True; MaxFactor: 599186),  // Base 16
71
    (MaxPower:            410338673; MaxDigits:  7; PowerofTwo: False; MaxFactor: 586365),  // Base 17
72
    (MaxPower:            612220032; MaxDigits:  7; PowerofTwo: False; MaxFactor: 574769),  // Base 18
73
    (MaxPower:            893871739; MaxDigits:  7; PowerofTwo: False; MaxFactor: 564215),  // Base 19
74
    (MaxPower:           1280000000; MaxDigits:  7; PowerofTwo: False; MaxFactor: 554555),  // Base 20
75
    (MaxPower:           1801088541; MaxDigits:  7; PowerofTwo: False; MaxFactor: 545668),  // Base 21
76
    (MaxPower:           2494357888; MaxDigits:  7; PowerofTwo: False; MaxFactor: 537455),  // Base 22
77
    (MaxPower:           3404825447; MaxDigits:  7; PowerofTwo: False; MaxFactor: 529836),  // Base 23
78
    (MaxPower:            191102976; MaxDigits:  6; PowerofTwo: False; MaxFactor: 609864),  // Base 24
79
    (MaxPower:            244140625; MaxDigits:  6; PowerofTwo: False; MaxFactor: 602129),  // Base 25
80
    (MaxPower:            308915776; MaxDigits:  6; PowerofTwo: False; MaxFactor: 594881),  // Base 26
81
    (MaxPower:            387420489; MaxDigits:  6; PowerofTwo: False; MaxFactor: 588069),  // Base 27
82
    (MaxPower:            481890304; MaxDigits:  6; PowerofTwo: False; MaxFactor: 581651),  // Base 28
83
    (MaxPower:            594823321; MaxDigits:  6; PowerofTwo: False; MaxFactor: 575589),  // Base 29
84
    (MaxPower:            729000000; MaxDigits:  6; PowerofTwo: False; MaxFactor: 569852),  // Base 30
85
    (MaxPower:            887503681; MaxDigits:  6; PowerofTwo: False; MaxFactor: 564411),  // Base 31
86
    (MaxPower:           1073741824; MaxDigits:  6; PowerofTwo:  True; MaxFactor: 559241),  // Base 32
87
    (MaxPower:           1291467969; MaxDigits:  6; PowerofTwo: False; MaxFactor: 554319),  // Base 33
88
    (MaxPower:           1544804416; MaxDigits:  6; PowerofTwo: False; MaxFactor: 549626),  // Base 34
89
    (MaxPower:           1838265625; MaxDigits:  6; PowerofTwo: False; MaxFactor: 545145),  // Base 35
90
    (MaxPower:           2176782336; MaxDigits:  6; PowerofTwo: False; MaxFactor: 540859)   // Base 36
91
  );
92
//{$ENDIF}
93

94

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.