diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2001-11-15 12:10:22 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2001-11-15 12:10:22 +0000 |
commit | b0c56c0561011bdbfd525cda2ce380c1e8ee597e (patch) | |
tree | 69be6e31f89526b28edfa5067682463632901a24 /Doc/Zsh | |
parent | 096e24858f98288a002493a865a7a49ead8d169a (diff) | |
download | zsh-b0c56c0561011bdbfd525cda2ce380c1e8ee597e.tar.gz zsh-b0c56c0561011bdbfd525cda2ce380c1e8ee597e.tar.xz zsh-b0c56c0561011bdbfd525cda2ce380c1e8ee597e.zip |
16241: new rand48(param) math function
Diffstat (limited to 'Doc/Zsh')
-rw-r--r-- | Doc/Zsh/mod_mathfunc.yo | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Doc/Zsh/mod_mathfunc.yo b/Doc/Zsh/mod_mathfunc.yo index 05ce9fe45..637c22d8f 100644 --- a/Doc/Zsh/mod_mathfunc.yo +++ b/Doc/Zsh/mod_mathfunc.yo @@ -52,3 +52,36 @@ a floating point or integer value (by truncation) respectively. Note that the C tt(pow) function is available in ordinary math evaluation as the `tt(**)' operator and is not provided here. + +The function tt(rand48) is available if your system's mathematical library +has the function tt(erand48(3)). It returns a pseudo-random floating point +number between 0 and 1. It takes a single string optional argument. + +If the argument is not present, the random number seed is initialised by +three calls to the tt(rand(3)) function --- this produces the same random +numbers as the next three values of tt($RANDOM). + +If the argument is present, it gives the name of a scalar parameter where +the current random number seed will be stored. On the first call, the +value must contain at least twelve hexadecimal digits (the remainder of the +string is ignored), or the seed will be initialised in the same manner as +for a call to tt(rand48) with no argument. Subsequent calls to +tt(rand48)LPAR()var(param)RPAR() will then maintain the seed in the +parameter var(param) as a string of twelve hexadecimal digits, with no base +signifier. The random number sequences for different parameters are +completely independent, and are also independent from that used by calls to +tt(rand48) with no argument. + +For example, consider + +example(print $(( rand48(seed) )) +print $(( rand48() )) +print $(( rand48(seed) ))) + +Assuming tt($seed) does not exist, it will be initialised by the first +call. In the second call, the default seed is initialised; note, however, +that because of the properties of tt(rand()) there is a correlation between +the seeds used for the two initialisations, so for more secure uses, you +should generate your own 12-byte seed. The third call returns to the same +sequence of random numbers used in the first call, unaffected by the +intervening tt(rand48()). |