[silver:util:random]

Contents of [silver:util:random]:

Defined in this grammar:

global randomToken

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomToken.sv line 6.

Monadic action to generate a RandomToken in the RandomGen Monad.


threaded attribute randomIn, randomOut :: RandomToken direction=left to right

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomToken.sv line 11.

Utility attribute pair to thread a random token through an abstract syntax tree.


fun randomShuffle   (RandomGen<[a]> ::= elems::[a] )

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 9.

Parameter elems
The list to shuffle.
Return
A RandomGen monadic action to shuffle the list.

Randomly shuffle the elements of a list.


fun randomElem   (RandomGen<a> ::= elems::[a] )

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 26.

Parameter elems
The list from which to select an element.
Return
A RandomGen monadic action to select an element from the list.

Select a random element from a non-empty list. An error is raised when the list is empty.


nonterminal RandomVal<a>

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 40.

Utility for creating a random value using the token-based random library. Example: production foo::RandomVal = randomVal(); thread randomIn, randomOut on top, foo, top; local fooVal::Integer = foo.randomValue;


abstract production randomVal   (Random a => top::RandomVal<a> ::= )

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 48.

Create a random value using the default Random instance for the type.


abstract production randomRangeVal   (RandomRange a => top::RandomVal<a> ::= min::a max::a )

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 62.

Parameter min
The minimum bound for the random value.
Parameter max
The maximum bound for the random value.

Create a random value using the default RandomRange instance for the type.


abstract production randomGenVal   (top::RandomVal<a> ::= g::RandomGen<a> )

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 75.

Parameter g
The random generator to use to generate a value.

Create a random value using a monadic RandomGen action.


function runRandomGenT   (IOVal<a> ::= r::RandomGen<a> ioIn::IOToken )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomMonad.sv line 10.

Parameter r
The computation to run
Parameter ioIn
The IO token
Return
An IOVal containing the result of the computation

Run a RandomGen computation, using an arbitrary seed.


abstract production runRandomGen   (top::IO<a> ::= r::RandomGen<a> )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomMonad.sv line 23.

Parameter r
The computation to run

Run a RandomGen computation, using an arbitrary seed (IO monadic version.)


function runSeedRandomGen   (a ::= seed::Integer r::RandomGen<a> )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomMonad.sv line 38.

Parameter seed
The initial seed value for the random number generator
Parameter r
The computation to run
Return
The result of the computation

Run a RandomGen computation, using an arbitrary seed.


function runTokenRandomGen   ((a,RandomToken) ::= token::RandomToken r::RandomGen<a> )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomMonad.sv line 53.

Parameter token
The random number generator to use
Parameter r
The computation to run
Return
The result of the computation

Run a RandomGen computation, using a random token.


class Random

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 9.

Types for which random values can be generated.

This class imposes no restrictions on the range or distribution of random values, as there may be instances for types with no notion of ordering/equality.


class RandomRange

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 41.

Types for which random values can be generated, uniformly distributed over some closed range [min, max].

Note that this is not a subclass of Ord since we may have instances for partial orders.

If a has an instance for Ord, then instances should satisfy: runRandomGen(randomRange(min, max)) >= min runRandomGen(randomRange(min, max)) <= max


class Arbitrary

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 9.

Represents primitive (terminal) types for which arbitrary random values can be generated.

function randomTInteger   ((Integer,RandomToken) ::= token::RandomToken )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomToken.sv line 13.

(Undocumented.)


function randomTFloat   ((Float,RandomToken) ::= token::RandomToken )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomToken.sv line 21.

(Undocumented.)


function randomTBoolean   ((Boolean,RandomToken) ::= token::RandomToken )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomToken.sv line 29.

(Undocumented.)


function randomRangeTInteger   ((Integer,RandomToken) ::= min::Integer max::Integer token::RandomToken )

Contained in grammar [silver:util:random]. Defined at silver/util/random/RandomToken.sv line 37.

(Undocumented.)


synthesized attribute randomValue<a> :: a

Contained in grammar [silver:util:random]. Defined at silver/util/random/Util.sv line 43.

(Undocumented.)


class Random.random :: => RandomGen<a>

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 10.

(Undocumented.)


class Random.randomT :: => ((a,RandomToken) ::= RandomToken) (has default)

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 11.

(Undocumented.)


instance Random Integer

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 15.

(Undocumented.)


instance Random Integer.random

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 16.

(Undocumented.)


instance Random Integer.randomT

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 17.

(Undocumented.)


instance Random Float

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 21.

(Undocumented.)


instance Random Float.random

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 22.

(Undocumented.)


instance Random Float.randomT

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 23.

(Undocumented.)


instance Random Boolean

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 27.

(Undocumented.)


instance Random Boolean.random

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 28.

(Undocumented.)


instance Random Boolean.randomT

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 29.

(Undocumented.)


class RandomRange.randomRange :: => (RandomGen<a> ::= a a)

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 42.

(Undocumented.)


class RandomRange.randomRangeT :: => ((a,RandomToken) ::= a a RandomToken) (has default)

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 43.

(Undocumented.)


instance RandomRange Integer

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 47.

(Undocumented.)


instance RandomRange Integer.randomRange

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 49.

(Undocumented.)


instance RandomRange Integer.randomRangeT

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 50.

(Undocumented.)


instance RandomRange Float

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 54.

(Undocumented.)


instance RandomRange Float.randomRange

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 55.

(Undocumented.)


instance RandomRange Boolean

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 60.

(Undocumented.)


instance RandomRange Boolean.randomRange

Contained in grammar [silver:util:random]. Defined at silver/util/random/Random.sv line 61.

(Undocumented.)


class Arbitrary.genArb :: => (RandomGen<a> ::= Integer)

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 10.

(Undocumented.)


instance Arbitrary Integer

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 13.

(Undocumented.)


instance Arbitrary Integer.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 14.

(Undocumented.)


instance Arbitrary Float

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 17.

(Undocumented.)


instance Arbitrary Float.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 18.

(Undocumented.)


instance Arbitrary Boolean

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 21.

(Undocumented.)


instance Arbitrary Boolean.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 22.

(Undocumented.)


instance Arbitrary String

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 25.

(Undocumented.)


instance Arbitrary String.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 27.

(Undocumented.)


instance Arbitrary Location

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 35.

(Undocumented.)


instance Arbitrary Location.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 36.

(Undocumented.)


instance Arbitrary Pair<a b>

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 39.

(Undocumented.)


instance Arbitrary Pair<a b>.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 40.

(Undocumented.)


instance Arbitrary Either<a b>

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 43.

(Undocumented.)


instance Arbitrary Either<a b>.genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 44.

(Undocumented.)


instance Arbitrary [a]

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 48.

(Undocumented.)


instance Arbitrary [a].genArb

Contained in grammar [silver:util:random]. Defined at silver/util/random/Arbitrary.sv line 49.

(Undocumented.)