class Random::PCG32

Overview

pcg32_random_r: - result: 32-bit unsigned int (uint32_t) - period: 2^64 (* 2^63 streams) - state type: pcg32_random_t (16 bytes) - output func: XSH-RR

Included Modules

Defined in:

random/pcg32.cr

Constant Summary

PCG_DEFAULT_MULTIPLIER_64 = 6364136223846793005_u64

Constructors

Instance Method Summary

Instance methods inherited from module Random

base64(n : Int = 16) : String base64, hex(n : Int = 16) : String hex, new_seed new_seed, next_bool : Bool next_bool, next_float : Float64 next_float, next_int : Int32 next_int, next_u next_u, rand(max : Int) : Int
rand(max : Float64) : Float64
rand(max : Float32) : Float32
rand(range : Range(Int, Int)) : Int
rand(range : Range(Float, Float)) : Float
rand(type : StaticArray(Int8, _).class)
rand(type : StaticArray(UInt8, _).class)
rand(type : StaticArray(Int16, _).class)
rand(type : StaticArray(UInt16, _).class)
rand(type : StaticArray(Int32, _).class)
rand(type : StaticArray(UInt32, _).class)
rand(type : StaticArray(Int64, _).class)
rand(type : StaticArray(UInt64, _).class)
rand(type : StaticArray(Int128, _).class)
rand(type : StaticArray(UInt128, _).class)
rand(type : Int8.class) : Int8
rand(type : UInt8.class) : UInt8
rand(type : Int16.class) : Int16
rand(type : UInt16.class) : UInt16
rand(type : Int32.class) : Int32
rand(type : UInt32.class) : UInt32
rand(type : Int64.class) : Int64
rand(type : UInt64.class) : UInt64
rand(type : Int128.class) : Int128
rand(type : UInt128.class) : UInt128
rand : Float64
rand
, random_bytes(n : Int = 16) : Bytes
random_bytes(buf : Bytes) : Nil
random_bytes
, split : self split, split_internal(other : self) : Nil split_internal, urlsafe_base64(n : Int = 16, padding = false) : String urlsafe_base64

Constructor methods inherited from module Random

new(seed, sequence = 0_u64)
new
new

Class methods inherited from module Random

next_bool : Bool next_bool, next_int : Int32 next_int, rand(x)
rand : Float64
rand

Instance methods inherited from class Reference

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil)
same?
, to_s(io : IO) : Nil to_s

Constructor methods inherited from class Reference

new new, unsafe_construct(address : Pointer, *args, **opts) : self unsafe_construct

Class methods inherited from class Reference

pre_initialize(address : Pointer) pre_initialize

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash
hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil!
not_nil!
, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io : String | IO, root : String)
from_json(string_or_io : String | IO)
from_json
, from_yaml(string_or_io : String | IO) from_yaml

Macros inherited from class Object

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

Constructor Detail

def self.new(initstate : UInt64, initseq = 0_u64) #

[View source]
def self.new #

[View source]

Instance Method Detail

def jump(delta) #

[View source]
def new_seed(initstate : UInt64, initseq = 0_u64) : UInt32 #

[View source]
def new_seed : UInt32 #
Description copied from module Random

Reseed the generator.


[View source]
def next_u : UInt32 #
Description copied from module Random

Generates a random unsigned integer.

The integers must be uniformly distributed between 0 and the maximal value for the chosen type.


[View source]
def split_internal(other : self) : Nil #
Description copied from module Random

The internal implementation for #split where self is the original instance and other the duplicated instance to be returned.

The default Random implementation in stdlib is splittable, but not every PRNG algorithm is splittable, so the method raises a NotImplementedError exception by default.


[View source]