Struct vrd::mersenne_twister::MersenneTwisterConfig
source · pub struct MersenneTwisterConfig {
pub n: usize,
pub m: usize,
pub matrix_a: u32,
pub upper_mask: u32,
pub lower_mask: u32,
pub tempering_mask_b: u32,
pub tempering_mask_c: u32,
}
Expand description
Configuration for the Mersenne Twister algorithm.
Fields§
§n: usize
The number of elements in the array used for the Mersenne Twister algorithm. Its value is set to 624 for optimal performance.
m: usize
The number of elements to skip in the array used for the Mersenne Twister algorithm. Its value is set to 397 for optimal performance.
matrix_a: u32
A constant value used in the Mersenne Twister algorithm.
upper_mask: u32
A constant value used in the Mersenne Twister algorithm.
lower_mask: u32
A constant value used in the Mersenne Twister algorithm.
tempering_mask_b: u32
A constant value used in the Mersenne Twister algorithm.
tempering_mask_c: u32
A constant value used in the Mersenne Twister algorithm.
Implementations§
source§impl MersenneTwisterConfig
impl MersenneTwisterConfig
Implementation of the MersenneTwisterConfig
struct.
sourcepub fn new_custom(
n: usize,
m: usize,
matrix_a: u32,
upper_mask: u32,
lower_mask: u32,
tempering_mask_b: u32,
tempering_mask_c: u32
) -> MersenneTwisterConfig
pub fn new_custom( n: usize, m: usize, matrix_a: u32, upper_mask: u32, lower_mask: u32, tempering_mask_b: u32, tempering_mask_c: u32 ) -> MersenneTwisterConfig
Creates a new MersenneTwisterConfig
with customizable values.
§Arguments
n
- The number of elements in the array.m
- The number of elements to skip.matrix_a
- Constant value used in the algorithm.upper_mask
- Constant value used in the algorithm.lower_mask
- Constant value used in the algorithm.tempering_mask_b
- Constant value used in the algorithm.tempering_mask_c
- Constant value used in the algorithm.
§Panics
This function panics if any of the provided parameters are outside of their valid range.
§Example
use vrd::mersenne_twister::MersenneTwisterConfig;
let config = MersenneTwisterConfig::new_custom(
624, // n
397, // m
0x9908b0df, // matrix_a
0x80000000, // upper_mask
0x7fffffff, // lower_mask
0x9d2c5680, // tempering_mask_b
0xefc60000 // tempering_mask_c
);
sourcepub fn new() -> MersenneTwisterConfig
pub fn new() -> MersenneTwisterConfig
Creates a new MersenneTwisterConfig
with default values.
Default values are as follows:
n
: 624m
: 397matrix_a
: 0x9908b0dfupper_mask
: 0x80000000lower_mask
: 0x7ffffffftempering_mask_b
: 0x9d2c5680tempering_mask_c
: 0xefc60000
§Example
use vrd::mersenne_twister::MersenneTwisterConfig;
let config = MersenneTwisterConfig::new();
sourcepub fn set_n(&mut self, n: usize)
pub fn set_n(&mut self, n: usize)
Sets the number of elements in the array.
§Panics
This function panics if the provided parameter is outside of its valid range.
sourcepub fn set_m(&mut self, m: usize)
pub fn set_m(&mut self, m: usize)
Sets the number of elements to skip.
§Panics
This function panics if the provided parameter is outside of its valid range.
sourcepub fn set_matrix_a(&mut self, matrix_a: u32)
pub fn set_matrix_a(&mut self, matrix_a: u32)
Sets the matrix_a constant value.
§Panics
This function panics if the provided parameter is not valid.
sourcepub fn set_upper_mask(&mut self, upper_mask: u32)
pub fn set_upper_mask(&mut self, upper_mask: u32)
Sets the upper_mask constant value.
§Panics
This function panics if the provided parameter is not valid.
sourcepub fn set_lower_mask(&mut self, lower_mask: u32)
pub fn set_lower_mask(&mut self, lower_mask: u32)
Sets the lower_mask constant value.
§Panics
This function panics if the provided parameter is not valid.
sourcepub fn set_tempering_mask_b(&mut self, tempering_mask_b: u32)
pub fn set_tempering_mask_b(&mut self, tempering_mask_b: u32)
Sets the tempering_mask_b constant value.
§Panics
This function panics if the provided parameter is not valid.
sourcepub fn set_tempering_mask_c(&mut self, tempering_mask_c: u32)
pub fn set_tempering_mask_c(&mut self, tempering_mask_c: u32)
Sets the tempering_mask_c constant value.
§Panics
This function panics if the provided parameter is not valid.
Trait Implementations§
source§impl Clone for MersenneTwisterConfig
impl Clone for MersenneTwisterConfig
source§fn clone(&self) -> MersenneTwisterConfig
fn clone(&self) -> MersenneTwisterConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MersenneTwisterConfig
impl Debug for MersenneTwisterConfig
source§impl Default for MersenneTwisterConfig
impl Default for MersenneTwisterConfig
source§impl<'de> Deserialize<'de> for MersenneTwisterConfig
impl<'de> Deserialize<'de> for MersenneTwisterConfig
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Display for MersenneTwisterConfig
impl Display for MersenneTwisterConfig
source§impl Hash for MersenneTwisterConfig
impl Hash for MersenneTwisterConfig
source§impl Ord for MersenneTwisterConfig
impl Ord for MersenneTwisterConfig
source§fn cmp(&self, other: &MersenneTwisterConfig) -> Ordering
fn cmp(&self, other: &MersenneTwisterConfig) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for MersenneTwisterConfig
impl PartialEq for MersenneTwisterConfig
source§fn eq(&self, other: &MersenneTwisterConfig) -> bool
fn eq(&self, other: &MersenneTwisterConfig) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for MersenneTwisterConfig
impl PartialOrd for MersenneTwisterConfig
source§fn partial_cmp(&self, other: &MersenneTwisterConfig) -> Option<Ordering>
fn partial_cmp(&self, other: &MersenneTwisterConfig) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more