addition by Gregory Crosswhite
authorAbhinav Bhatele <bhatele@illinois.edu>
Thu, 22 Jan 2009 14:40:18 +0000 (14:40 +0000)
committerAbhinav Bhatele <bhatele@illinois.edu>
Thu, 22 Jan 2009 14:40:18 +0000 (14:40 +0000)
doc/converse/manual.tex
doc/converse/random.tex [new file with mode: 0644]

index 5377ac0d73f53462dd1ccab3302940ceaa31776d..05259be308ace6ba4a6eacdec32de71cdb211084 100644 (file)
@@ -26,6 +26,6 @@ Parthasarathy Ramachandran, Krishnan Varadarajan, and Jeffrey Wright.
 \input{ccs}
 \input{onesided}
 \input{index}
-
+\input{random}
 
 \end{document}
diff --git a/doc/converse/random.tex b/doc/converse/random.tex
new file mode 100644 (file)
index 0000000..8573f93
--- /dev/null
@@ -0,0 +1,40 @@
+\chapter{Random Number Generation}
+
+Converse includes support for random number generation using a 64-bit Linear Congruential Generator (LCG).  The user can choose between using a supplied default stream shared amonst all chares on the processor, or creating a private stream.  Note that there is a limit on the number of private streams, which at the the time of writing was 15,613.
+
+\function{struct CrnStream;}
+\index{CrnStream}
+\desc{This structure contains the current state of a random number stream.  The user is responsible for allocating the memory for this structure.}
+
+\section{Default Stream Calls}
+
+\function{void CrnSrand(int seed);}
+\index{CrnSrand}
+\desc{Seeds the default randon number generator with {\tt seed}.}
+
+\function{int CrnRand(void);}
+\index{CrnRand}
+\desc{Returns the next random number in the default stream as an integer.}
+
+\function{int CrnDrand(void);}
+\index{CrnDrand}
+\desc{Returns the next random number in the default stream as a double.}
+
+\section{Private Stream Calls}
+
+\function{void CrnInitStream(CrnStream *dest, int seed, int type);}
+\index{CrnInitStream}
+\desc{Initializes a new stream with its initial state stored in \test{dest}.  The user must supply a seed in {\tt seed}, as well as the {\tt type} of the stream, where the {\tt type} can be 0, 1, or 2.}
+
+\function{double CrnDouble(CrnStream *genptr);}
+\index{CrnDouble}
+\desc{Returns the next random number in the stream whose state is given by {\tt genptr};  the number is returned as a double.}
+
+\function{double CrnInt(CrnStream *genptr);}
+\index{CrnInt}
+\desc{Returns the next random number in the stream whose state is given by {\tt genptr};  the number is returned as an integer.}
+
+\function{double CrnFloat(CrnStream *genptr);}
+\index{CrnFloat}
+\desc{Returns the next random number in the stream whose state is given by {\tt genptr};  the number is returned as a float.  (Note:  This function is exactly equivalent to {\tt (float) CrnDouble(genptr); }.) }
+