A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/cplusplus/draft/commit/bfaea046b5176152a86514a886a5b7ab66e4dffe below:

[rand.req.urng] Rework URBG requirements for clarity and simplicitly · cplusplus/draft@bfaea04 · GitHub

2018 2018

is often determined statistically.

2019 2019

\end{note}

2020 2020 2021 -

\pnum

2022 -

A class \tcode{G}

2023 -

satisfies the requirements

2024 -

of a \term{uniform random bit generator}

2025 -

if the expressions shown

2026 -

in \tref{UniformRandomBitGenerator}

2027 -

are valid and have the indicated semantics,

2028 -

and if \tcode{G} also satisfies all other requirements

2029 -

of this subclause \ref{rand.req.urng}.

2030 -

In that Table and throughout this subclause:

2031 -

\begin{enumeratea}

2032 -

\item

2033 -

\tcode{T} is the type named by

2034 -

\tcode{G}'s associated \tcode{result_type},

2035 -

and

2036 -

\item

2037 -

\tcode{g} is a value of \tcode{G}.

2038 -

\end{enumeratea}

2039 - 2040 -

\begin{libreqtab4d}

2041 -

{Uniform random bit generator requirements}

2042 -

{tab:UniformRandomBitGenerator}

2043 -

\\ \topline

2044 -

\lhdr{Expression}

2045 -

& \chdr{Return type}

2046 -

& \chdr{Pre/post-condition}

2047 -

& \rhdr{Complexity}

2048 -

\\ \capsep

2049 -

\endfirsthead

2050 -

\hline

2051 -

\lhdr{Expression}

2052 -

& \chdr{Return type}

2053 -

& \chdr{Pre/post-condition}

2054 -

& \rhdr{Complexity}

2055 -

\\ \capsep

2056 -

\endhead

2057 -

\indextext{\idxcode{result_type}!uniform random bit generator requirement}%

2058 -

\tcode{G::result_type}

2059 -

& \tcode{T}

2060 -

& \tcode{T} is an unsigned integer type\iref{basic.fundamental}.

2061 -

& compile-time

2062 -

\\ \rowsep

2063 -

\tcode{g()}%

2064 -

\indextext{\idxcode{operator()}!uniform random bit generator requirement}

2065 -

& \tcode{T}

2066 -

& Returns a value in the closed interval

2067 -

$[$\tcode{G::min()}, \tcode{G::max()}$]$.

2068 -

& amortized constant

2069 -

\\ \rowsep

2070 -

\tcode{G::min()}%

2071 -

\indextext{\idxcode{min}!uniform random bit generator requirement}

2072 -

& \tcode{T}

2073 -

& Denotes the least value potentially returned

2074 -

by \tcode{operator()}.

2075 -

& compile-time

2076 -

\\ \rowsep

2077 -

\tcode{G::max()}

2078 -

\indextext{\idxcode{max}!uniform random bit generator requirement}

2079 -

& \tcode{T}

2080 -

& Denotes the greatest value potentially returned

2081 -

by \tcode{operator()}.

2082 -

& compile-time

2083 -

\\

2084 -

\end{libreqtab4d}

2085 - 2086 -

\pnum

2087 -

The following relation shall hold:

2088 -

\tcode{G::min() < G::max()}.

2089 -

\indextext{requirements!uniform random bit generator|)}%

2090 -

\indextext{uniform random bit generator!requirements|)}

2091 - 2092 -

\pnum

2093 -

The \libconcept{UniformRandomBitGenerator} concept is a slight relaxation of the

2094 -

uniform random bit generator requirements, in that it does not require a nested

2095 -

\grammarterm{typedef-name} \tcode{result_type}.

2096 - 2097 2021

\begin{codeblock}

2098 2022

template<class G>

2099 2023

concept UniformRandomBitGenerator =

2105 2029

\end{codeblock}

2106 2030 2107 2031

\pnum

2108 -

Let \tcode{g} be an object of type \tcode{G}.

2109 -

\tcode{\libconcept{UniformRandomBitGenerator}<G>} is satisfied only if

2032 +

Let \tcode{g} be an object of type \tcode{G}. \tcode{G} models

2033 +

\libconcept{UniformRandomBitGenerator} only if

2110 2034 2111 2035

\begin{itemize}

2112 2036

\item both \tcode{G::min()} and \tcode{G::max()} are constant

2117 2041

\item \tcode{g()} has amortized constant complexity.

2118 2042

\end{itemize}

2119 2043 2044 +

\indextext{requirements!uniform random bit generator|)}%

2045 +

\indextext{uniform random bit generator!requirements|)}%

2046 +

\pnum

2047 +

A class \tcode{G} meets the \term{uniform random bit generator} requirements if

2048 +

\tcode{G} models \libconcept{UniformRandomBitGenerator},

2049 +

\tcode{invoke_result_t<G\&>} is an unsigned integer type\iref{basic.fundamental},

2050 +

and

2051 +

\tcode{G} provides a nested \grammarterm{typedef-name} \tcode{result_type}

2052 +

that denotes the same type as \tcode{invoke_result_t<G\&>}.

2053 + 2054 + 2120 2055

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2121 2056

% Random Number Engine requirements:

2122 2057 2291 2226

\state{e}{i+1} $= \mathsf{TA}($\state{e}{i}$)$

2292 2227

and returns

2293 2228

$\mathsf{GA}($\state{e}{i}$)$.

2294 -

& per \tref{UniformRandomBitGenerator}

2229 +

& per \ref{rand.req.urng}

2295 2230

\\ \rowsep

2296 2231

\tcode{e.discard(z)}%

2297 2232

\indextext{\idxcode{discard}!random number engine requirement}


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4