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}
unsigned long t1 = xorshift();\\
unsigned long t2 = xor128();\\
unsigned long t3 = xorwow();\\
- x = x\^\ (unsigned int)t;\\
+ x = x\^\ (unsigned int)t1;\\
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)(t1$>>$32);\\
x = x\^\ (unsigned int)t3;\\
return x;\\
\}
\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 bits most significants bits of the variable \texttt{t}.
\section{Efficient prng based on chaotic iterations on GPU}