pcg_random/
variants.rs

1use crate::{
2	DefaultCheapLcgParameters, DefaultCheapMcgParameters, DefaultLcgParameters,
3	DefaultMcgParameters, Pcg,
4	output::{Dxsm, RxsMXs, XshRr, XshRs, XslRr, XslRrRr}
5};
6
7
8
9// XSH RS
10pub type XshRs168 = Pcg<DefaultLcgParameters<u16>, XshRs, u16, u8>;
11pub type XshRs3216 = Pcg<DefaultLcgParameters<u32>, XshRs, u32, u16>;
12pub type XshRs6432 = Pcg<DefaultLcgParameters<u64>, XshRs, u64, u32>;
13pub type XshRs12864 = Pcg<DefaultLcgParameters<u128>, XshRs, u128, u64>;
14pub type CmXshRs12864 = Pcg<DefaultCheapLcgParameters<u128>, XshRs, u128, u64>;
15
16pub type McgXshRs168 = Pcg<DefaultMcgParameters<u16>, XshRs, u16, u8>;
17pub type McgXshRs3216 = Pcg<DefaultMcgParameters<u32>, XshRs, u32, u16>;
18pub type McgXshRs6432 = Pcg<DefaultMcgParameters<u64>, XshRs, u64, u32>;
19pub type McgXshRs12864 = Pcg<DefaultMcgParameters<u128>, XshRs, u128, u64>;
20pub type CmMcgXshRs12864 = Pcg<DefaultCheapMcgParameters<u128>, XshRs, u128, u64>;
21
22// XSH RR
23pub type XshRr168 = Pcg<DefaultLcgParameters<u16>, XshRr, u16, u8>;
24pub type XshRr3216 = Pcg<DefaultLcgParameters<u32>, XshRr, u32, u16>;
25pub type XshRr6432 = Pcg<DefaultLcgParameters<u64>, XshRr, u64, u32>;
26pub type XshRr12864 = Pcg<DefaultLcgParameters<u128>, XshRr, u128, u64>;
27pub type CmXshRr12864 = Pcg<DefaultCheapLcgParameters<u128>, XshRr, u128, u64>;
28
29pub type McgXshRr168 = Pcg<DefaultMcgParameters<u16>, XshRr, u16, u8>;
30pub type McgXshRr3216 = Pcg<DefaultMcgParameters<u32>, XshRr, u32, u16>;
31pub type McgXshRr6432 = Pcg<DefaultMcgParameters<u64>, XshRr, u64, u32>;
32pub type McgXshRr12864 = Pcg<DefaultMcgParameters<u128>, XshRr, u128, u64>;
33pub type CmMcgXshRr12864 = Pcg<DefaultCheapMcgParameters<u128>, XshRr, u128, u64>;
34
35// RXS M XS
36pub type RxsMXs88 = Pcg<DefaultLcgParameters<u8>, RxsMXs, u8, u8>;
37pub type RxsMXs1616 = Pcg<DefaultLcgParameters<u16>, RxsMXs, u16, u16>;
38pub type RxsMXs3232 = Pcg<DefaultLcgParameters<u32>, RxsMXs, u32, u32>;
39pub type RxsMXs6464 = Pcg<DefaultLcgParameters<u64>, RxsMXs, u64, u64>;
40pub type RxsMXs128128 = Pcg<DefaultLcgParameters<u128>, RxsMXs, u128, u128>;
41pub type CmRxsMXs128128 = Pcg<DefaultCheapLcgParameters<u128>, RxsMXs, u128, u128>;
42
43// DXSM
44pub type Dxsm168 = Pcg<DefaultLcgParameters<u16>, Dxsm, u16, u8>;
45pub type Dxsm3216 = Pcg<DefaultLcgParameters<u32>, Dxsm, u32, u16>;
46pub type Dxsm6432 = Pcg<DefaultLcgParameters<u64>, Dxsm, u64, u32>;
47pub type Dxsm12864 = Pcg<DefaultLcgParameters<u128>, Dxsm, u128, u64>;
48pub type CmDxsm12864 = Pcg<DefaultCheapLcgParameters<u128>, Dxsm, u128, u64>;
49
50pub type McgDxsm168 = Pcg<DefaultMcgParameters<u16>, Dxsm, u16, u8>;
51pub type McgDxsm3216 = Pcg<DefaultMcgParameters<u32>, Dxsm, u32, u16>;
52pub type McgDxsm6432 = Pcg<DefaultMcgParameters<u64>, Dxsm, u64, u32>;
53pub type McgDxsm12864 = Pcg<DefaultMcgParameters<u128>, Dxsm, u128, u64>;
54pub type CmMcgDxsm12864 = Pcg<DefaultCheapMcgParameters<u128>, Dxsm, u128, u64>;
55
56// XSL RR
57pub type XslRr6432 = Pcg<DefaultLcgParameters<u64>, XslRr, u64, u32>;
58pub type XslRr12864 = Pcg<DefaultLcgParameters<u128>, XslRr, u128, u64>;
59pub type CmXslRr12864 = Pcg<DefaultCheapLcgParameters<u128>, XslRr, u128, u64>;
60
61pub type McgXslRr6432 = Pcg<DefaultMcgParameters<u64>, XslRr, u64, u32>;
62pub type McgXslRr12864 = Pcg<DefaultMcgParameters<u128>, XslRr, u128, u64>;
63pub type CmMcgXslRr12864 = Pcg<DefaultCheapMcgParameters<u128>, XslRr, u128, u64>;
64
65// XSL RR RR
66pub type XslRrRr6464 = Pcg<DefaultLcgParameters<u64>, XslRrRr, u64, u64>;
67pub type XslRrRr128128 = Pcg<DefaultLcgParameters<u128>, XslRrRr, u128, u128>;
68pub type CmXslRrRr128128 = Pcg<DefaultCheapLcgParameters<u128>, XslRrRr, u128, u128>;