Fully managed library providing various random number generators and distributions.
More precisely, this library offers four generators (ALF, MT19937, Standard, XorShift128), six discrete distributions (Bernoulli, Binomial, Categorical, DiscreteUniform, Geometric, Poisson) and twenty continuous distributions (like Normal, Exponential, ChiSquare, Beta, and so on); moreover, it offers a random class similar to the one Python offers (TRandom).
All the hard work behind this library was done by Stefan Troschütz, and for which I thank him very much. What I am doing with his great project, is simply to refactor and improve his code, while offering the new random class similar to the one Python offers.
You can find the modified source code and the available documentation at this address: http://goo.gl/vIV2G
NOTICE: If you need more performance, please have a look at the Troschuetz.Random.Unchecked package. It is a release where all integrity checks have been stripped away.
See the version list below for details.
Install-Package Troschuetz.Random -Version 2.0.0
dotnet add package Troschuetz.Random --version 2.0.0
<PackageReference Include="Troschuetz.Random" Version="2.0.0" />
paket add Troschuetz.Random --version 2.0.0
* Library is not portable anymore, it has gone back to .NET framework 4.0.
* New generic classes, which should allow better performance.
* Distribution and Generator abstract classes have been removed in favor of interfaces.
* Checks are now implemented with Code Contracts, rather then with Thrower.
* Some methods, like Integers and Doubles, are now extension methods.
* Overall, codebase is now smaller, which should allow better testing.
This package has no dependencies.
Showing the top 2 GitHub repositories that depend on Troschuetz.Random:
Brain Simulator is a platform for visual prototyping of artificial intelligence architectures.
.NET Standard roguelike library in C#. Features many algorithms and data structures pertinent to roguelike/2D game developers, specifically designed to be minimally intrusive upon the developer's architecture.