gi-glib-2.0.29: GLib bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | Safe-Inferred
Language | Haskell2010

GI.GLib.Structs.Rand

Contents

- Exported types
- Methods
  - copy
  - double
  - doubleRange
  - free
  - int
  - intRange
  - new
  - newWithSeed
  - newWithSeedArray
  - setSeed
  - setSeedArray

Description

The GRand struct is an opaque data structure. It should only be accessed through the g_rand_* functions.

Synopsis

- newtype Rand = Rand (ManagedPtr Rand)
- randCopy :: (HasCallStack, MonadIO m) => Rand -> m Rand
- randDouble :: (HasCallStack, MonadIO m) => Rand -> m Double
- randDoubleRange :: (HasCallStack, MonadIO m) => Rand -> Double -> Double -> m Double
- randFree :: (HasCallStack, MonadIO m) => Rand -> m ()
- randInt :: (HasCallStack, MonadIO m) => Rand -> m Word32
- randIntRange :: (HasCallStack, MonadIO m) => Rand -> Int32 -> Int32 -> m Int32
- randNew :: (HasCallStack, MonadIO m) => m Rand
- randNewWithSeed :: (HasCallStack, MonadIO m) => Word32 -> m Rand
- randNewWithSeedArray :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> m Rand
- randSetSeed :: (HasCallStack, MonadIO m) => Rand -> Word32 -> m ()
- randSetSeedArray :: (HasCallStack, MonadIO m) => Rand -> Word32 -> Word32 -> m ()

# Exported types

newtype Rand Source #

Memory-managed wrapper type.

Constructors

Rand (ManagedPtr Rand) |

#### Instances

Instances details

Eq Rand Source # |
Instance details Defined in GI.GLib.Structs.Rand Methods (==) :: Rand -> Rand -> Bool Source # (/=) :: Rand -> Rand -> Bool Source #
GBoxed Rand Source # |
Instance details Defined in GI.GLib.Structs.Rand
ManagedPtrNewtype Rand Source # |
Instance details Defined in GI.GLib.Structs.Rand Methods toManagedPtr :: Rand -> ManagedPtr Rand Source #
TypedObject Rand Source # |
Instance details Defined in GI.GLib.Structs.Rand Methods glibType :: IO GType Source #
HasParentTypes Rand Source # |
Instance details Defined in GI.GLib.Structs.Rand
IsGValue (Maybe Rand) Source # | Convert `Rand` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.GLib.Structs.Rand Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe Rand -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe Rand) Source #
type ParentTypes Rand Source # |
Instance details Defined in GI.GLib.Structs.Rand type ParentTypes Rand = '[] :: [Type]

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

copy, double, doubleRange, free, int, intRange.

#### Getters

None.

#### Setters

setSeed, setSeedArray.

## copy

randCopy Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> m Rand | Returns: the new `Rand`

Copies a `Rand` into a new one with the same exact state as before. This way you can take a snapshot of the random number generator for replaying later.

Since: 2.4

## double

randDouble Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> m Double | Returns: a random number

Returns the next random `gdouble` from `rand_` equally distributed over the range [0..1).

## doubleRange

randDoubleRange Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> Double | `begin`: lower closed bound of the interval
-> Double | `end`: upper open bound of the interval
-> m Double | Returns: a random number

Returns the next random `gdouble` from `rand_` equally distributed over the range [`begin`..`end`).

## free

randFree Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> m () |

Frees the memory allocated for the `Rand`.

## int

randInt Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> m Word32 | Returns: a random number

Returns the next random `guint32` from `rand_` equally distributed over the range [0..2^32-1].

## intRange

randIntRange Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> Int32 | `begin`: lower closed bound of the interval
-> Int32 | `end`: upper open bound of the interval
-> m Int32 | Returns: a random number

Returns the next random `gint32` from `rand_` equally distributed over the range [`begin`..`end`-1].

## new

randNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m Rand | Returns: the new `Rand`

Creates a new random number generator initialized with a seed taken either from `/dev/urandom` (if existing) or from the current time (as a fallback).

On Windows, the seed is taken from `rand_s()`.

## newWithSeed

randNewWithSeed Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Word32 | `seed`: a value to initialize the random number generator
-> m Rand | Returns: the new `Rand`

Creates a new random number generator initialized with `seed`.

## newWithSeedArray

randNewWithSeedArray Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Word32 | `seed`: an array of seeds to initialize the random number generator
-> Word32 | `seedLength`: an array of seeds to initialize the random number generator
-> m Rand | Returns: the new `Rand`

Creates a new random number generator initialized with `seed`.

Since: 2.4

## setSeed

randSetSeed Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> Word32 | `seed`: a value to reinitialize the random number generator
-> m () |

Sets the seed for the random number generator `Rand` to `seed`.

## setSeedArray

randSetSeedArray Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Rand | `rand_`: a `Rand`
-> Word32 | `seed`: array to initialize with
-> Word32 | `seedLength`: length of array
-> m () |

Initializes the random number generator by an array of longs. Array can be of arbitrary size, though only the first 624 values are taken. This function is useful if you have many low entropy seeds, or if you require more then 32 bits of actual entropy for your application.

Since: 2.4