X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/prng_gpu.git/blobdiff_plain/01d6ea25639436faca9b43ab4c739ec2f86a24c7..7c04da8823a9d68e733d60060a68207fce376a96:/prng_gpu.tex diff --git a/prng_gpu.tex b/prng_gpu.tex index c505685..f048253 100644 --- a/prng_gpu.tex +++ b/prng_gpu.tex @@ -35,7 +35,8 @@ In order to implement efficiently a PRNG based on chaotic iterations it is possible to improve previous works [ref]. One solution consists in considering that the strategy used $S^i$ contains all the bits for which the negation is achieved out. Then instead of applying the negation on these bits we can simply -apply the xor operator between the current number and the strategy $S^i$. +apply the xor operator between the current number and the strategy $S^i$. In +order to obtain the strategy we also use a classical PRNG. \begin{figure}[htbp] \begin{center} @@ -46,12 +47,12 @@ unsigned int CIprng() \{\\ unsigned long t1 = xorshift();\\ unsigned long t2 = xor128();\\ unsigned long t3 = xorwow();\\ - x = x\^\ (unsigned int)t;\\ - x = x\^\ (unsigned int)(t2$>>$32);\\ - x = x\^\ (unsigned int)(t3$>>$32);\\ - x = x\^\ (unsigned int)t2;\\ - x = x\^\ (unsigned int)(t$>>$32);\\ - x = x\^\ (unsigned int)t3;\\ + x = x\textasciicircum (unsigned int)t1;\\ + x = x\textasciicircum (unsigned int)(t2$>>$32);\\ + x = x\textasciicircum (unsigned int)(t3$>>$32);\\ + x = x\textasciicircum (unsigned int)t2;\\ + x = x\textasciicircum (unsigned int)(t1$>>$32);\\ + x = x\textasciicircum (unsigned int)t3;\\ return x;\\ \} \end{minipage} @@ -61,9 +62,15 @@ unsigned int CIprng() \{\\ \label{algo:seqCIprng} \end{figure} -In Figure~\ref{algo:seqCIprng} a sequential version of our chaotic iterations based PRNG is -presented. This version uses three classical 64-bits PRNG: the xorshift, the -xor128 and the xorwow. These three PRNGs are presented in~\cite{Marsaglia2003}. +In Figure~\ref{algo:seqCIprng} a sequential version of our chaotic iterations +based PRNG is presented. This version uses three classical 64 bits PRNG: the +\texttt{xorshift}, the \texttt{xor128} and the \texttt{xorwow}. These three +PRNGs are presented in~\cite{Marsaglia2003}. As each PRNG used works with +64-bits and as our PRNG works with 32 bits, the use of \texttt{(unsigned int)} +selects the 32 least significant bits whereas \texttt{(unsigned int)(t3$>>$32)} +selects the 32 most significants bits of the variable \texttt{t}. This version +sucesses the BigCrush of the TestU01 battery [P. L’ecuyer and + R. Simard. Testu01]. \section{Efficient prng based on chaotic iterations on GPU}