%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
%D the user interface (which uses intermediate variables).

\registerctxluafile{supp-ran}{}

\unprotect

\unexpanded\def\getrandomcount #1#2#3{#1=\clf_getrandomnumber\numexpr#2\relax\numexpr#3\relax\relax}
\unexpanded\def\getrandomdimen #1#2#3{#1=\clf_getrandomdimen\dimexpr#2\relax\dimexpr#3\relax\scaledpoint\relax}
\unexpanded\def\getrandomnumber#1#2#3{\edef#1{\clf_getrandomnumber\numexpr#2\relax\numexpr#3\relax}}
\unexpanded\def\getrandomfloat #1#2#3{\edef#1{\clf_getrandomfloat\dimexpr#2\relax\dimexpr#3\relax}}
\unexpanded\def\setrandomseed      #1{\clf_setrandomseed\numexpr#1\relax}
\unexpanded\def\getrandomseed      #1{\edef#1{\clf_getrandomseed}}
\unexpanded\def\pushrandomseed       {\clf_pushrandomseed}
\unexpanded\def\poprandomseed        {\clf_poprandomseed}
\unexpanded\def\reuserandomseed      {\clf_reuserandomseed} % within push/pop

\let\freezerandomseed \pushrandomseed
\let\defrostrandomseed\poprandomseed

\def\randomnumber  #1#2{\clf_getrandomnumber\numexpr#1\relax\numexpr#2\relax}
\let\mprandomnumber     \clf_getmprandomnumber

\protect \endinput
