Skip to content

Instantly share code, notes, and snippets.

@mjs3339
mjs3339 / TinyArray.cs
Last active December 24, 2017 18:29
C# Tiny Generic Array Class
[Serializable]
public class TinyArray<T>
{
public int Count;
public T[] Thing;
public TinyArray() : this(4096)
{
}
@mjs3339
mjs3339 / Primality.cs
Created December 28, 2017 20:00
C# Unsigned Long Primality Class Sieve, isCarmichael, Deterministic, MillerRabin, SolovayStrassen, Fermat
public static class Primality
{
public static readonly int[] Primes4k =
{
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313,
317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491,
499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677,
683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881,
883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049,
@mjs3339
mjs3339 / sysinfo.cpp
Created December 29, 2017 16:05
C++ A Collection of Low Level Functions for the CPU
#include "SysInfo.h"
#include <intrin.h>
BOOL __stdcall DllMain(HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved)
{
return TRUE;
}
extern "C" __declspec(dllexport) bool __stdcall tsc_supported()
{
@mjs3339
mjs3339 / CPUTotalPC.cs
Created December 30, 2017 17:17
C# Get Processor Time using PerformanceCounter
public static class CPUTotalPC
{
private static PerformanceCounter _CPUsage;
public static double CPULoad
{
get
{
if (_CPUsage == null)
{
try
@mjs3339
mjs3339 / GArray.cs
Created December 30, 2017 17:20
C# Small Generic Collection Class
[Serializable]
public class GArray<T>
{
private readonly int _capacity = 4096;
private int _count;
private int _position;
private T[] Thing;
public GArray()
{
_capacity = 4096;
@mjs3339
mjs3339 / brmsc.cs
Created January 1, 2018 01:43
C# Add Functionallity to BigRational AsDecimal AsScientific
public BigInteger Remainder => Numerator % Denominator;
private static ulong HashHold;
private static string DecimalString = "0";
private static readonly FNV1a64 _Hasher = new FNV1a64();
public static int DisplayPrecision = 100;
public string AsDecimal(bool rounding = false, int toDigits = 100)
{
var lh = _Hasher.Hash64(Numerator.ToByteArray()) ^ _Hasher.Hash64(Denominator.ToByteArray());
if (HashHold == lh) return DecimalString;
if (DisplayPrecision < 0)
@mjs3339
mjs3339 / CryptoRandomNumberGenerator.cs
Created January 2, 2018 20:36
C# Generic Cryptographically Strong Random Number Generator
public class CryptoRandomNumberGenerator<T> where T : struct
{
private static BigRational _maxValue;
private readonly byte[] _buffer;
private readonly BigRational _mult;
private readonly CryptoGetBytes _ncsp;
private int _availableCacheEntries;
private BigRational[] _cache;
private int _cacheptr;
private int _cacheSize = 1000000;
@mjs3339
mjs3339 / BigIntegerHelper.cs
Created January 2, 2018 21:00
C# BigIntegerHelper Class
public static class BigIntegerHelper
{
private static readonly BigInteger Ten = new BigInteger(10);
public static BigInteger ToBigInteger(this ulong ul)
{
return new BigInteger(ul);
}
public static BigInteger ToBigInteger(this long ul)
{
return new BigInteger((ulong) ul);
@mjs3339
mjs3339 / CryptoGetBytes.cs
Last active January 8, 2018 16:32
C# Implements a Cryptographically Strong GetBytes
public class CryptoGetBytes
{
private readonly SHA512Managed _Hasher = new SHA512Managed();
private readonly SeedBytes _SeedBytes;
private int _AvailableCacheBytes;
private byte[] _Buffer;
private byte[] _Cache;
private int _Ptr;
public CryptoGetBytes()
{
@mjs3339
mjs3339 / DiskInformation.cs
Created February 25, 2018 14:21
C# Get Detailed Information on Installed Disks
public class DiskInfoStruct
{
public string BytesPerSector;
public string Capabilities;
public string CapabilityDescriptions;
public string Caption;
public string ConfigManagerErrorCode;
public string ConfigManagerUserConfig;
public string Description;
public string DeviceID;