mersenne-twister-predictor
Predict MT19937 PRNG, from preceding 624 generated numbers. There is a specialization for the "random" of Python standard library. (by kmyk)
cauldron
A collection of single-file C libraries. (generic containers, random number generation, argument parsing and other functionalities) (by camel-cdr)
mersenne-twister-predictor | cauldron | |
---|---|---|
1 | 25 | |
121 | 117 | |
- | - | |
0.4 | 1.2 | |
over 3 years ago | about 1 year ago | |
Python | C | |
- | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mersenne-twister-predictor
Posts with mentions or reviews of mersenne-twister-predictor.
We have used some of these posts to build our list of alternatives
and similar projects.
-
An interesting legaladvice post regarding PoE's disability treatment
So, extracting information out of a completely unknown random generator is already pretty tricky. If you know you are dealing with a mersenne twister it is doable for sure, but even if you are dealing with the pretty basic MT19937 (which has a period of 219937-1) which is for instance included in the c standard library you need a few hundred numbers (https://github.com/kmyk/mersenne-twister-predictor) to guess the next one. This assumes that you have those exact numbers. Network latency (unless GGG would track the data directly on the client, fair enough) would muddy it further so that you would need a larger amount of data to verify it. How much more I have no fucking clue.
cauldron
Posts with mentions or reviews of cauldron.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-04-15.
-
Many floating-point numbers are in the interval (2017) [0,1]
I've previously written an algorithm that generates random floats in any [a,b], which can generate all possible floating point values, including subnormals, with the proper probability, and does so quickly for any choice of a and b. [0]
[0] https://github.com/camel-cdr/cauldron/blob/main/cauldron/ran...
-
Let's implement buffered, formatted output
The major advantage here is that you don't need to parse a dsl, and you can still have formatting options. A final api would probably use automatic compound literal struct arguments to implement default arguments with names parameters.
Type detection should also be possible, although you would need to register all print functions in a global macro.
This is just a proof of concept: https://github.com/camel-cdr/cauldron/blob/main/ideas/fmt.c
This is just a proof of concept: https://github.com/camel-cdr/cauldron/blob/main/ideas/fmt.c
-
SIMD-oriented Fast Mersenne Twister in C and non STD library discussion
It really depends on your use case, but I've written a header only PRNG library that might be interesting to you. I've also held a presentation about it, if you are interested in the specifics: "How computers generate random numbers (A guide for programmers)"
- C Posix complaint argument parsing in 42 loc, inspired by Duff's device
-
Fast Approximate Gaussian Generator
I've put it through an adapted version of testgauss.c, and it passed the test.
- Single header argument parsing, inspired by plan9's arg(3), in 45 loc
-
Designing a new PRNG (Jan 2021)
The entire romu-random.org family is faster than xoshiro256++, atleast in my benchmark:
-
Fast (pseudo) RNG?
Now for the self promo: If you are interested in random number generation, check out my presentation on the topic: https://www.youtube.com/watch?v=VHJUlRiRDCY You can also check out my random number library: https://github.com/camel-cdr/cauldron/blob/main/cauldron/random.h
-
How to Properly Benchmark C Code
For my benchmarking library, I use macros to tell the compiler not to optimize away a value, pre-running the benchmark to "warm up" the CPU/scheduler and calculate the average and deviation of multiple runs of the benchmark.
What are some alternatives?
When comparing mersenne-twister-predictor and cauldron you can also consider the following projects:
shredos.x86_64 - Shredos Disk Eraser 64 bit for all Intel 64 bit processors as well as processors from AMD and other vendors which make compatible 64 bit chips. ShredOS - Secure disk erasure/wipe
prvhash - PRVHASH - Pseudo-Random-Value Hash. Hash functions, PRNG with unlimited period, randomness extractor, and a glimpse into abyss. (inline C/C++) (Codename Gradilac/Градилак)
frand - A fast userspace CSPRNG