Welcome to mirror list, hosted at ThFree Co, Russian Federation.

pseudo_random.hpp « base - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 61c5e510338842b395c386d85e84bdc54954f1fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "../base/base.hpp"

class LCG32
{
public:
  LCG32() : m_seed(31) {}
  LCG32(size_t seed) : m_seed(static_cast<uint32_t>(seed)) {}

  size_t Generate()
  {
    m_seed = m_seed * 69069 + 1;
    return m_seed;
  }

private:
  uint32_t m_seed;
};

typedef LCG32 PseudoRNG32;