Random Module

From BaseX Documentation
Jump to navigation Jump to search

This XQuery Module contains functions for computing random values. All functions except for random:seeded-double and random:seeded-integer are nondeterministic, i. e., they return different values for each call.

Conventions[edit]

All functions and errors in this module are assigned to the http://basex.org/modules/random namespace, which is statically bound to the random prefix.

Functions[edit]

random:double[edit]

Signature
random:double() as xs:double
Summary Returns a double value between 0.0 (inclusive) and 1.0 (exclusive).

random:integer[edit]

Signature
random:integer(
  $max  as xs:integer  := ()
) as xs:integer
Summary Returns an integer value, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive)
Errors bounds: the maximum value is out of bounds.

random:seeded-double[edit]

Signature
random:seeded-double(
  $seed  as xs:integer,
  $num   as xs:integer
) as xs:double*
Summary Returns a sequence with $num double values between 0.0 (inclusive) and 1.0 (exclusive). The random values are created using the initial seed given in $seed.

random:seeded-integer[edit]

Signature
random:seeded-integer(
  $seed  as xs:integer,
  $num   as xs:integer,
  $max   as xs:integer  := ()
) as xs:integer*
Summary Returns a sequence with $num integer values, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive). The random values are created using the initial seed given in $seed.
Errors bounds: the maximum value is out of bounds.
negative: the number of values to be returned is negative.

random:gaussian[edit]

Signature
random:gaussian(
  $num  as xs:integer
) as xs:double*
Summary Returns a sequence with $num double values. The random values are Gaussian (i.e. normally) distributed with the mean 0.0. and the derivation 1.0.

random:seeded-permutation[edit]

Signature
random:seeded-permutation(
  $seed   as xs:integer,
  $items  as item()*
) as item()*
Summary Returns a random permutation of the specified $items. The random order is created using the initial seed given in $seed.

random:uuid[edit]

Signature
random:uuid() as xs:string
Summary Creates a random universally unique identifier (UUID), represented as 128-bit value.
Examples
  • random:uuid() eq random:uuid() will (most probably) return the boolean value false.

Errors[edit]

Code Description
bounds The specified maximum value is out of bounds.
negative The specified number of values to be returned is negative.

Changelog[edit]

Version 9.0
  • Updated: error codes updated; errors now use the module namespace
Version 8.5
Version 8.0

The module was introduced with Version 7.5. It includes some functionality which was previously located in the Math Module.