summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/supp-ran.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/supp-ran.mkxl')
-rw-r--r--tex/context/base/mkxl/supp-ran.mkxl49
1 files changed, 49 insertions, 0 deletions
diff --git a/tex/context/base/mkxl/supp-ran.mkxl b/tex/context/base/mkxl/supp-ran.mkxl
new file mode 100644
index 000000000..e70c3d437
--- /dev/null
+++ b/tex/context/base/mkxl/supp-ran.mkxl
@@ -0,0 +1,49 @@
+%D \module
+%D [ file=supp-ran,
+%D version=2008-10-31,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=Random Number Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Support Macros / Random Number Generation}
+
+%D This module is downward compatible in the sense that we've kept the user
+%D interface (which uses intermediate variables).
+%D
+%D \starttyping
+%D \type{new}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \setrandomseed{24}\type{set}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \setrandomseed{24}\type{set}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \setrandomseed{24}\type{set}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \pushrandomseed \type{new}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \poprandomseed \type{old}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \type{new}: \dorecurse{10}{\randomnumber{1}{100} }\par
+%D \stoptyping
+
+\registerctxluafile{supp-ran}{}
+
+\unprotect
+
+\permanent\protected\def\getrandomcount #1#2#3{#1=\clf_getrandomnumber\numexpr#2\relax\numexpr#3\relax\relax}
+\permanent\protected\def\getrandomdimen #1#2#3{#1=\clf_getrandomdimen\dimexpr#2\relax\dimexpr#3\relax\scaledpoint\relax}
+\permanent\protected\def\getrandomnumber#1#2#3{\edef#1{\clf_getrandomnumber\numexpr#2\relax\numexpr#3\relax}}
+\permanent\protected\def\getrandomfloat #1#2#3{\edef#1{\clf_getrandomfloat\dimexpr#2\relax\dimexpr#3\relax}}
+\permanent\protected\def\setrandomseed #1{\clf_setrandomseed\numexpr#1\relax}
+\permanent\protected\def\getrandomseed #1{\edef#1{\clf_getrandomseed}}
+%permanent\protected\def\pushrandomseed {\clf_pushrandomseed}
+%permanent\protected\def\poprandomseed {\clf_poprandomseed}
+%permanent\protected\def\reuserandomseed {\clf_reuserandomseed} % within push/pop
+
+\aliased\let\freezerandomseed \pushrandomseed
+\aliased\let\defrostrandomseed\poprandomseed
+
+\permanent\def\randomnumber #1#2{\clf_getrandomnumber\numexpr#1\relax\numexpr#2\relax}
+\permanent\def\mprandomnumber {\clf_getmprandomnumber}
+
+\protect \endinput