Difference between revisions of "Random Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 3: Line 3:
 
=Conventions=
 
=Conventions=
  
All functions in this module are assigned to the <code><nowiki>http://basex.org/modules/random</nowiki></code> namespace, which is statically bound to the {{Code|random}} prefix.<br/>
+
{{Mark|Updated with Version 9.0}}:
All errors are assigned to the <code><nowiki>http://basex.org/errors</nowiki></code> namespace, which is statically bound to the {{Code|bxerr}} prefix.
+
 
 +
All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/random</nowiki></code> namespace, which is statically bound to the {{Code|random}} prefix.<br/>
  
 
=Functions=
 
=Functions=
Line 30: Line 31:
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXRA0001|#Errors}} the maximum value is out of bounds.
+
|{{Error|bounds|#Errors}} the maximum value is out of bounds.
 
|}
 
|}
  
Line 55: Line 56:
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXRA0001|#Errors}} the maximum value is out of bounds.<br/>{{Error|BXRA0002|#Errors}} the number of values to be returned is negative.
+
|{{Error|bounds|#Errors}} the maximum value is out of bounds.<br/>{{Error|negative|#Errors}} the number of values to be returned is negative.
 
|}
 
|}
  
Line 96: Line 97:
  
 
=Errors=
 
=Errors=
 +
 +
{{Mark|Updated with Version 9.0}}:
  
 
{| class="wikitable" width="100%"
 
{| class="wikitable" width="100%"
Line 101: Line 104:
 
|Description
 
|Description
 
|-
 
|-
|{{Code|BXRA0001}}
+
|{{Code|bounds}}
 
|The specified maximum value is out of bounds.
 
|The specified maximum value is out of bounds.
 
|-
 
|-
|{{Code|BXRA0002}}
+
|{{Code|negative}}
 
|The specified number of values to be returned is negative.
 
|The specified number of values to be returned is negative.
 
|}
 
|}
  
 
=Changelog=
 
=Changelog=
 +
 +
;Version 9.0
 +
 +
* Updated: error codes updates; errors now use the module namespace
  
 
;Version 8.5
 
;Version 8.5

Revision as of 13:25, 21 November 2017

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

Conventions

Template:Mark:

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

random:double

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

random:integer

Signatures random:integer() as xs:integer
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

Signatures 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

Signatures random:seeded-integer($seed as xs:integer, $num as xs:integer) as xs:integer*
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

Signatures 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

Signatures 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

Signatures 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

Template:Mark:

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

Changelog

Version 9.0
  • Updated: error codes updates; 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.