#include <cinttypes>

struct uint128
{
  uint32_t a;
  uint32_t b;
  uint32_t c;
  uint32_t d;
};

namespace mrand
{
  uint128 getState(uint64_t seed);
  float getFloat(uint128 *state);
  int getValue(int max, uint128 *state);
  unsigned int computeCRC32(void *data, int dataSize);
}