Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
rng_sfmt.h
Go to the documentation of this file.
1#ifndef RNG_SFMT_H
2#define RNG_SFMT_H
3
4#include "rng_abstract.h"
5#include "sfmt/SFMT.h"
6
7#include <QMutex>
8#include <climits>
9
28
29class RNG_SFMT : public RNG_Abstract
30{
31 Q_OBJECT
32private:
33 QMutex mutex;
35 // The discrete cumulative distribution function for the RNG
36 unsigned int cdf(unsigned int min, unsigned int max);
37
38public:
39 explicit RNG_SFMT(QObject *parent = nullptr);
40 unsigned int rand(int min, int max) override;
41};
42
43#endif
SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom number generator using C structure.
struct SFMT_T sfmt_t
Definition SFMT.h:121
RNG_Abstract(QObject *parent=nullptr)
Definition rng_abstract.h:11
QMutex mutex
Definition rng_sfmt.h:33
sfmt_t sfmt
Definition rng_sfmt.h:34
RNG_SFMT(QObject *parent=nullptr)
Definition rng_sfmt.cpp:14
unsigned int cdf(unsigned int min, unsigned int max)
Definition rng_sfmt.cpp:102
unsigned int rand(int min, int max) override
Definition rng_sfmt.cpp:29