| Copyright | (c) OSANAI Kazuyoshi 2019 |
|---|---|
| License | BSD 3-Clause |
| Maintainer | osmium.k@gmail.com |
| Stability | experimental |
| Portability | GHC, word size 64bit |
| Safe Haskell | None |
| Language | Haskell2010 |
Random.XorshiftPlus
Description
Simple implementation of xorshift+.
>>>gen <- genXorshiftPlusInt 1>>>getInt gen2455688531189531812
Synopsis
- type XorshiftPlus = XorshiftPlusST RealWorld
- genXorshiftPlusWord :: Word -> IO XorshiftPlus
- genXorshiftPlusInt :: Int -> IO XorshiftPlus
- getWord :: XorshiftPlus -> IO Word
- getInt :: XorshiftPlus -> IO Int
- getDouble :: XorshiftPlus -> IO Double
- data XorshiftPlusST s
- genXorshiftPlusWordST :: Word -> ST s (XorshiftPlusST s)
- getWordST :: XorshiftPlusST s -> ST s Word
- splitMix64Next :: Word# -> Word#
IO version
type XorshiftPlus = XorshiftPlusST RealWorld Source #
Random state
Generator
Arguments
| :: Word | random seed |
| -> IO XorshiftPlus |
Generate a new random state by a Word seed.
Arguments
| :: Int | random seed |
| -> IO XorshiftPlus |
Generate a new random state by an Int seed.
Values
Low level, ST version
data XorshiftPlusST s Source #
Random state
genXorshiftPlusWordST :: Word -> ST s (XorshiftPlusST s) Source #
Generate a new random state by a Word seed.
Internal
splitMix64Next :: Word# -> Word# Source #
For first return value.
>>>W# (splitMix64Next 1##)10451216379200822465