RandPCG v0.1.2 RandPCG View Source

Generate random numbers based on the PCG Algorithm

Link to this section Summary

Types

32 bit unsigned integer Elixir has arbitrary precision, but the random numbers are limited

64 bit unsigned integer Elixir has arbitrary precision, but the random numbers are limited

Functions

Sets the process incrimenter

Returns a random 32bit integer

Examples

iex> RandPCG.random
3242229798

Returns a random entry from the enum max 32bit length

Returns a random integer x, min <= x <= max 32bit based

Returns a random integer x, min <= x <= max 32bit based

Sets the process seed

Called when an application is started

Returns the current state of the process

Sets the current state of the process

Link to this section Types

Link to this type uint32() View Source
uint32() :: non_neg_integer

32 bit unsigned integer Elixir has arbitrary precision, but the random numbers are limited

Link to this type uint64() View Source
uint64() :: non_neg_integer

64 bit unsigned integer Elixir has arbitrary precision, but the random numbers are limited

Link to this section Functions

Link to this function inc(inc) View Source
inc(non_neg_integer) :: non_neg_integer

Sets the process incrimenter

Returns a random 32bit integer

Examples

iex> RandPCG.random
3242229798
Link to this function random(count) View Source
random(:float) :: float
random(non_neg_integer) :: [uint32]
random([term]) :: term

Returns a random entry from the enum max 32bit length

Link to this function random(min, count) View Source
random(:float, non_neg_integer) :: [float]
random(non_neg_integer, non_neg_integer) :: uint32

Returns a random integer x, min <= x <= max 32bit based

Link to this function random(min, max, count) View Source
random(non_neg_integer, non_neg_integer, non_neg_integer) :: [uint32]

Returns a random integer x, min <= x <= max 32bit based

Link to this function seed(seed) View Source
seed(non_neg_integer) :: uint64

Sets the process seed

Called when an application is started.

This function is called when an the application is started using Application.start/2 (and functions on top of that, such as Application.ensure_started/2). This function should start the top-level process of the application (which should be the top supervisor of the application’s supervision tree if the application follows the OTP design principles around supervision).

start_type defines how the application is started:

  • :normal - used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another mode and the application specification key :start_phases is :undefined.
  • {:takeover, node} - used if the application is distributed and is started on the current node because of a failover on the node node.
  • {:failover, node} - used if the application is distributed and is started on the current node because of a failover on node node, and the application specification key :start_phases is not :undefined.

start_args are the arguments passed to the application in the :mod specification key (e.g., mod: {MyApp, [:my_args]}).

This function should either return {:ok, pid} or {:ok, pid, state} if startup is successful. pid should be the PID of the top supervisor. state can be an arbitrary term, and if omitted will default to []; if the application is later stopped, state is passed to the stop/1 callback (see the documentation for the c:stop/1 callback for more information).

use Application provides no default implementation for the start/2 callback.

Callback implementation for Application.start/2.

Link to this function state() View Source
state() :: State.t

Returns the current state of the process

Link to this function state(state) View Source
state(State.t) :: State.t

Sets the current state of the process