Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::subtra...carry_engine(3) C++ Standard Libarystd::subtra...carry_engine(3)

NAME
       std::subtract_with_carry_engine - std::subtract_with_carry_engine

Synopsis
	  Defined in header <random>
	  template<

	  class	UIntType,			       (since C++11)
	  std::size_t w, std::size_t s,	std::size_t r

	  > class subtract_with_carry_engine;

	  Is a random number engine that uses subtract with carry algorithm.

	  The  state  of  a  subtract_with_carry_engine	consists of a sequence
       \(\small{\{ X_i\}(0
	  \le i	<r)}\){X
	  i} (0	 i <r),	every \(\small{X_i}\)X
	  i is in interval \(\small{[0,	2^w)}\)[0, 2w
	  ).

	  Let all subscripts applied to	sequence be taken modulo r, c  be  the
       carry value which
	  is either 0 or 1. The	state transition is performed as follows:

	    * let \(\small{Y=X_{i-s}-X_{i-r}-c}\)Y=X
	      i-s-X
	      i-r-c,
	    * set \(\small{X_i}\)X
	      i	to \(\small{Y \mod 2^w}\)Y mod 2w
	      ,
	    * set c to 1, if \(\small{Y<0}\)Y<0, to 0 otherwise.

	  The following	typedefs define	the random number engine with two com-
       monly used
	  parameter sets:

	  Defined in header <random>
	  Type		       Definition
	  ranlux24_base(C++11)			  std::subtract_with_carry_en-
       gine<std::uint_fast32_t,	24, 10,	24>
	  ranlux48_base(C++11)			  std::subtract_with_carry_en-
       gine<std::uint_fast64_t,	48, 5, 12>

Template parameters
		     The result	type generated by the generator. The effect is
       undefined if
	  UIntType - this is not one of	unsigned short,	unsigned int, unsigned
       long, or
		     unsigned long long.
	  w	   - The word size, in bits, of	the state sequence, 10 < w <=
		     std::numeric_limits<UIntType>::digits.
	  s	   - The short lag.
	  r	   - The long lag, where 0 < s < r.

Member types
	  Member type	      Definition
	  result_type  (C++11)	The integral type generated by the engine. Re-
       sults are undefined
			      if this is not an	unsigned integral type.

Member functions
Construction and Seeding
	  constructor	   constructs the engine
	  (C++11)	   (public member function)
	  seed		   sets	the current state of the engine
	  (C++11)	   (public member function)

Generation
	  operator()	   advances the	engine's state and returns the	gener-
       ated value
	  (C++11)	   (public member function)
	  discard	   advances the	engine's state by a specified amount
	  (C++11)	   (public member function)

Characteristics
	  min		    gets  the  smallest	 possible  value in the	output
       range
	  [static] (C++11) (public static member function)
	  max		   gets	the largest possible value in the output range
	  [static] (C++11) (public static member function)

Non-member functions
	  operator==		     compares  the  internal  states  of   two
       pseudo-random number
	  operator!=		    engines
	  (C++11)		    (function)
	  (C++11)(removed in C++20)
	  operator<<		      performs	stream	input  and  output  on
       pseudo-random number
	  operator>>		    engine
	  (C++11)		    (function template)

Member constants
	  constexpr size_t word_size	  template parameter w,	the word size
	  [static] (C++11)		  (public static member	constant)
	  constexpr size_t short_lag	  template parameter s,	the short lag
	  [static] (C++11)		  (public static member	constant)
	  constexpr size_t long_lag	  template parameter r,	the long lag
	  [static] (C++11)		  (public static member	constant)
	  constexpr UIntType default_seed constant value 19780503u
	  [static] (C++11)		  (public static member	constant)

http://cppreference.com		  2022.07.31	 std::subtra...carry_engine(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::subtract_with_carry_engine&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help