Seed the generator, following the reference pcg32_srandom_r: the
stream selector is shifted left and forced odd to become the LCG
increment, then the state is warmed up, offset by the requested state
and warmed up again.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
integer(kind=int64),
private
::
discard
Source Code
subroutine pcg32_seed(self,state,seq)!! Seed the generator, following the reference `pcg32_srandom_r`: the!! stream selector is shifted left and forced odd to become the LCG!! increment, then the state is warmed up, offset by the requested state!! and warmed up again.class(pcg32_t),intent(inout)::selfinteger(int64),intent(in)::stateinteger(int64),intent(in)::seqinteger(int64)::discardself%increment=ior(ishft(seq,1),1_int64)self%state=0_int64discard=pcg32_step(self)self%state=u64_add(self%state,state)discard=pcg32_step(self)end subroutine pcg32_seed