home | help
std::linear...ntial_engine(3)  C++ Standard Libary std::linear...ntial_engine(3)

NAME
     std::linear_congruential_engine::linear_congruential_engine   -   std::lin-
     ear_congruential_engine::linear_congruential_engine

Synopsis
	linear_congruential_engine()  : 				     (1)
     (since C++11)
	linear_congruential_engine(default_seed) {}
	explicit  linear_congruential_engine(  result_type  value );	     (2)
     (since C++11)
	template< class  SeedSeq  >					     (3)
     (since C++11)
	explicit linear_congruential_engine( SeedSeq& seq );
	linear_congruential_engine(	  const      linear_congruential_engine&
     (since C++11)
	other  );							     (4)
     (implicitly
									      de-
     clared)

	Constructs the pseudo-random number engine.

	1) The default constructor.
	2)  Constructs	the engine with a seed value value. The engine's initial
     state is
	determined as follows:
	  * If c % m == 0 and value % m == 0 are both true, the state is 1.
	  * Otherwise, the state is value % m.
	3)  Constructs	the   engine   with   a   seed	 sequence   seq.   Given
     std::size_t(std::log2(m) /
	32) + 1 as k, the engine's initial state is determined as follows:
	 1. Creates an invented array object a of length k + 3.
	 2. Calls seq.generate(a + 0, a + k + 3).
	 3. Let S be \((\sum^{k-1}_{j=0} a_{j+3} \cdot 2^{32j}) \mod m\)(ak-1
	    j=0 a
	    j+3A.232j
	    ) mod m.
	 4.  If  both c % m == 0 and S == 0 are true, sets the engine's state to
     1. Otherwise,
	    sets the engineas state to S.
	This overload participates in overload resolution only if SeedSeq  meets
     the
	requirements of SeedSequence.
	4) The copy constructor. Upon construction, *this == other is true.

Parameters
	value - seed value to use in the initialization of the internal state
	seq   - seed sequence to use in the initialization of the internal state

Complexity
	1,2) Constant.
	3) Same as the complexity of the seq.generate call.
	4) Constant.

	Defect reports

	The  following	behavior-changing  defect  reports were applied retroac-
     tively to
	previously published C++ standards.

	  DR	Applied to	  Behavior as published 	Correct behavior
	P0935R0 C++11	   the default constructor was explicit made implicit

See also
	seed	sets the current state of the engine
	(C++11) (public member function)

http://cppreference.com 	   2024.06.10	   std::linear...ntial_engine(3)

home | help