Instantly share code, notes, and snippets.

View BigStack.cs
[DebuggerTypeProxy(typeof(HashSetDebugViewInt<>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
public class BigStack<T> : IEnumerable<T>
{
public BigArray<T> _array;
public BigStack() : this(BigArray<T>.Granularity)
{
}
public BigStack(ulong capacity)
View BigArray.cs
[Serializable]
public class BigArray<T> : IEnumerable<T>, IDisposable
{
private const int ShiftCount = 19;
public const ulong Granularity = 1 << 19;
private T[][] _arrays;
private bool _disposed;
private ulong _itemSize;
private ulong _numberOfArrays;
public string Tag;
View BigDictionary.cs
[DebuggerTypeProxy(typeof(HashSetDebugViewInt<>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
public class BigDictionary<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>>
{
public BigSet<TKey> Keys;
public int Resizes;
public BigArray<TValue> Values;
public BigDictionary() : this(BigArray<TKey>.Granularity, new BigComparer<TKey>())
{
View BigHashSet.cs
[DebuggerTypeProxy(typeof(HashSetDebugViewInt<>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
public class BigHashSet<T> : IEnumerable<T>
{
private readonly BigSet<T> _set;
public BigHashSet() : this(new BigComparer<T>())
{
}
public BigHashSet(IBigEqualityComparer<T> comparer)
View BigComparer.cs
public class BigComparer<T> : IBigEqualityComparer<T>
{
private static FNV1a64 hash;
private static Type _type;
public bool Equals(T x, T y)
{
if (x == null || y == null)
return false;
return object.Equals((T)x, (T)y);
}
View GetObjectSize.cs
public class GetObjectSize
{
public enum SetValueEnum
{
NotSet = -1,
Yes = 1,
No = 0
}
private SetValueEnum _isPrimitive;
private int _primitiveSize;
View BigSet.cs
[Serializable]
public class BigSet<T>
{
internal IBigEqualityComparer<T> _comparer;
internal BigArray<ulong> _hashBuckets;
internal BigArray<Slot> _slots;
internal ulong Count;
internal ulong Position;
internal int Version;
public BigSet() : this(BigArray<T>.Granularity, new BigComparer<T>())
View BigIntegerPrimality.cs
public class BigIntegerPrimality
{
private readonly Stopwatch MrSw = new Stopwatch();
private readonly BigInteger Three = new BigInteger(3);
public int BitLength;
public int Candidates;
private CryptoGetBytes crng;
public int FermatCandidates;
public int FermatComposites;
public int MillerRabinCandidates;
View CryptoGetBytes.cs
public class CryptoGetBytes : RandomNumberGenerator
{
private readonly int _hashSizeInBytes;
private int _availableCacheBytes;
private volatile byte[] _buffer;
private volatile byte[] _cache;
private volatile int _ptr;
public HashAlgorithm Algorithm;
#if DEBUG
public TinyDictionary<int, long> BytesRequestList = new TinyDictionary<int, long>();
View CryptoEntropy.cs
public class CryptoEntropy
{
public readonly TinyHashSet<byte[]> _entropyTest;
public CryptoEntropy()
{
EntropyRequested = 0;
_entropyTest = new TinyHashSet<byte[]>(new ArrayComparer());
}
public byte[] Entropy => GetEntropy();
public int EntropyRequested{get; private set;}