unsigned long t1 = xorshift();\\
unsigned long t2 = xor128();\\
unsigned long t3 = xorwow();\\
- 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)(t1$>>$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}
\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
+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)}
+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}.
+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}