Skip to content

A port of the PCG random number generator for use as a Rust library

License

Notifications You must be signed in to change notification settings

afnanenayet/pcg-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pcg-rs

Build status crates badge Documentation License

Synopsis

This is a port of the PCG random number generation libary, made for C and C++, to Rust.

The library implements the RngCore trait, which automatically implements the Rng trait, providing a standard interface to generate and sample random numbers.

Note: with the 1.0.0 release of pcg-rs, the old sampling methods have been deprecated, please use the sampling methods implemented via the Rng trait instead.

http://www.pcg-random.org

Usage

This crate offers no_std compatibility through the std feature. It is enabled by default, but if you want to use no_std, you can add the package like this:

[dependencies.pcg]
version = "4.0"
default-features = false

This crate also has optional support for serde, which you can enable as a feature:

[dependencies.pcg]
version = "4.0"
features = ["std", "serde"]

Example Usage

use rand::prelude::*;
use pcg::Pcg;

// Initialize the default PCG rng state
let mut rng = Pcg::default();

// Generate some boolean using the standard `gen()` method, which generates the
// appropriate type with type inference
let random_bool: bool = rng.gen();