Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HashHelpers.cs
Go to the documentation of this file.
1namespace System.Collections;
2
3internal static class HashHelpers
4{
5 private static readonly int[] s_primes = new int[72]
6 {
7 3, 7, 11, 17, 23, 29, 37, 47, 59, 71,
8 89, 107, 131, 163, 197, 239, 293, 353, 431, 521,
9 631, 761, 919, 1103, 1327, 1597, 1931, 2333, 2801, 3371,
10 4049, 4861, 5839, 7013, 8419, 10103, 12143, 14591, 17519, 21023,
11 25229, 30293, 36353, 43627, 52361, 62851, 75431, 90523, 108631, 130363,
12 156437, 187751, 225307, 270371, 324449, 389357, 467237, 560689, 672827, 807403,
13 968897, 1162687, 1395263, 1674319, 2009191, 2411033, 2893249, 3471899, 4166287, 4999559,
14 5999471, 7199369
15 };
16
17 public static bool IsPrime(int candidate)
18 {
19 if (((uint)candidate & (true ? 1u : 0u)) != 0)
20 {
21 int num = (int)Math.Sqrt(candidate);
22 for (int i = 3; i <= num; i += 2)
23 {
24 if (candidate % i == 0)
25 {
26 return false;
27 }
28 }
29 return true;
30 }
31 return candidate == 2;
32 }
33
34 public static int GetPrime(int min)
35 {
36 if (min < 0)
37 {
39 }
40 int[] array = s_primes;
41 foreach (int num in array)
42 {
43 if (num >= min)
44 {
45 return num;
46 }
47 }
48 for (int j = min | 1; j < int.MaxValue; j += 2)
49 {
50 if (IsPrime(j) && (j - 1) % 101 != 0)
51 {
52 return j;
53 }
54 }
55 return min;
56 }
57
58 public static int ExpandPrime(int oldSize)
59 {
60 int num = 2 * oldSize;
61 if ((uint)num > 2147483587u && 2147483587 > oldSize)
62 {
63 return 2147483587;
64 }
65 return GetPrime(num);
66 }
67}
static int GetPrime(int min)
static readonly int[] s_primes
Definition HashHelpers.cs:9
static int ExpandPrime(int oldSize)
static bool IsPrime(int candidate)
static double Sqrt(double d)
static string Arg_HTCapacityOverflow
Definition SR.cs:186
Definition SR.cs:7