RNG-177: Add streaming examples to the user guide
diff --git a/src/site/apt/userguide/rng.apt b/src/site/apt/userguide/rng.apt
index 3b08072..950868e 100644
--- a/src/site/apt/userguide/rng.apt
+++ b/src/site/apt/userguide/rng.apt
@@ -378,6 +378,34 @@
int random = sampler.sample();
+--------------------------+
+ * Sampler interfaces are provided for generation of the primitive types <<<int>>>, <<<long>>>, and <<<double>>>
+ and objects of type <<<T>>>. The <<<samples>>> method creates a stream of sample values
+ using the Java 8 streaming API:
+
++--------------------------+
+import org.apache.commons.rng.sampling.distribution.PoissonSampler;
+import org.apache.commons.rng.simple.RandomSource;
+
+double mean = 15.5;
+int streamSize = 100;
+int[] counts = PoissonSampler.of(RandomSource.L64_X128_MIX.create(), mean)
+ .samples(streamSize)
+ .toArray();
++--------------------------+
+
++--------------------------+
+import org.apache.commons.rng.sampling.distribution.ZigguratSampler;
+import org.apache.commons.rng.simple.RandomSource;
+
+// Lower-truncated Normal distribution samples
+double low = -1.23;
+double[] samples = ZigguratSampler.NormalizedGaussian.of(RandomSource.L64_X128_MIX.create())
+ .samples()
+ .filter(x -> x > low)
+ .limit(100)
+ .toArray();
++--------------------------+
+
* The <<<SharedStateSampler>>> interface allows creation of a copy of the sampler using a new
generator. The samplers share only their immutable state and can be used in parallel computations.
@@ -468,10 +496,11 @@
import org.apache.commons.rng.sampling.shape.BoxSampler;
double[] lower = {1, 2, 3};
-double[] upper = {15, 16, 17}
+double[] upper = {15, 16, 17};
BoxSampler sampler = BoxSampler.of(RandomSource.KISS.create(),
lower, upper);
double[] coordinate = sampler.sample();
+double[][] coordinates = sampler.samples(100).toArray(double[][]::new);
+--------------------------+
* The