summaryrefslogtreecommitdiffstats
path: root/txr.1
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-01-29 00:06:19 -0800
committerKaz Kylheku <kaz@kylheku.com>2022-01-29 00:06:19 -0800
commitaeae4fc3dcfbb4b5376515e5660134e79a4f54c3 (patch)
tree41f4802e73ec8e5204382ff88783fb82281087c2 /txr.1
parent43f5cf62900830004b53a5df989bad6eece71052 (diff)
downloadtxr-aeae4fc3dcfbb4b5376515e5660134e79a4f54c3.tar.gz
txr-aeae4fc3dcfbb4b5376515e5660134e79a4f54c3.tar.bz2
txr-aeae4fc3dcfbb4b5376515e5660134e79a4f54c3.zip
New function: random-sample.
Implements reservoir sampling. * rand.c (radom_float_impl): New static function, made out of random_float. Returns double, giving us access to the unboxed result (random_float): Now a wrapper around random_float_impl: boxes the result of random_float. (elrd, flrd, random_sample): New static functions. (rand_init): Register random-sample intrinsic. * txr.1: Documented. * stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'txr.1')
-rw-r--r--txr.131
1 files changed, 31 insertions, 0 deletions
diff --git a/txr.1 b/txr.1
index 81ee2846..47b89655 100644
--- a/txr.1
+++ b/txr.1
@@ -64759,6 +64759,37 @@ for a description of
.code buf
objects.
+.coNP Function @ random-sample
+.synb
+.mets (random-sample < size < seq <> [ random-state ])
+.syne
+.desc
+The
+.code random-sample
+function returns a vector of
+.meta size
+randomly selected elements from the sequence
+.metn seq ,
+using reservoir sampling.
+
+If the number of elements in
+.meta seq
+is equal to or smaller than
+.metn size ,
+then the function returns a vector of all the elements of
+.meta seq
+in their original order.
+
+In other cases, the selected elements are not required to appear
+in their original order.
+
+No element of sequence
+.meta seq
+is selected more than once; duplicate values can appear
+in the output only if
+.meta seq
+itself contains duplicates.
+
.SS* Time
.coNP Functions @, time @ time-usec and @ time-nsec
.synb