]> AND Private Git Repository - prng_gpu.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
ajout
authorcouturie <couturie@carcariass.(none)>
Mon, 5 Sep 2011 20:11:49 +0000 (22:11 +0200)
committercouturie <couturie@carcariass.(none)>
Mon, 5 Sep 2011 20:11:49 +0000 (22:11 +0200)
prng_gpu.tex

index c505685702dc3ecf4cead612d0b5e25d6828b7a8..e177e2459e5ea47883bb9871104bd6bb25df2e2b 100644 (file)
@@ -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
 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}
 
 \begin{figure}[htbp]
 \begin{center}
@@ -46,11 +47,11 @@ unsigned int CIprng() \{\\
   unsigned long t1 = xorshift();\\
   unsigned long t2 = xor128();\\
   unsigned long t3 = xorwow();\\
   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)(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;\\
 \}
   x = x\^\ (unsigned int)t3;\\
   return x;\\
 \}
@@ -61,9 +62,13 @@ unsigned int CIprng() \{\\
 \label{algo:seqCIprng}
 \end{figure}
 
 \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}
 
 
 \section{Efficient prng based on chaotic iterations on GPU}