Difference between revisions of "Designer Primitive Operator Guide"

From Numerus
Jump to navigation Jump to search
Line 15: Line 15:
Most mathematical operations use the Java <kbd>java.lang.Math</kbd> class. These include <kbd>Math.abs</kbd>, <kbd>Math.sin</kbd>, <kbd>Math.cos</kbd>, <kbd>Math.pow</kbd> (for powers), etc. The complete list is contained [https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html here].
Most mathematical operations use the Java <kbd>java.lang.Math</kbd> class. These include <kbd>Math.abs</kbd>, <kbd>Math.sin</kbd>, <kbd>Math.cos</kbd>, <kbd>Math.pow</kbd> (for powers), etc. The complete list is contained [https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html here].


====Random Numbers====
''Designer'' implements certain primops associated with random number generation (RNG) using an instance of the <kbd>java.util.Random</kbd> class. This RNG can be seeded from the platform so that the random sequences obtained from these operators will be fixed. These primops are as follows:
''Designer'' implements certain primops associated with random number generation (RNG) using an instance of the <kbd>java.util.Random</kbd> class. This RNG can be seeded from the platform so that the random sequences obtained from these operators will be fixed. These primops are as follows:


<p id="random">
;<kbd>Double random(), Double random(Number y), Double random(Number x, Number y)<kbd>
;<kbd>Double random(), Double random(Number y), Double random(Number x, Number y)<kbd>
:Returns a random Double selected respectively from [0, 1), [0, ''y''), [''x, ''y'').
:Returns a random Double selected respectively from [0, 1), [0, ''y''), [''x, ''y'').
Line 22: Line 24:
;<kbd>Integer irandom(), Integer irandom(Number y), Integer irandom(Number x, Number y)<kbd>
;<kbd>Integer irandom(), Integer irandom(Number y), Integer irandom(Number x, Number y)<kbd>
:Returns a random Integer selected respectively from [0, 1), [0, ''y''), [x, ''y'').
:Returns a random Integer selected respectively from [0, 1), [0, ''y''), [x, ''y'').
 
</p>
<p id="normal">
;<kbd>Double normal(Double mu, Double sigma)<kbd>
;<kbd>Double normal(Double mu, Double sigma)<kbd>
:Returns a Gaussian-distributed RN with mean <kbd>mu</kbd> and standard deviation <kbd>sigma</kbd>.
:Returns a Gaussian-distributed RN with mean <kbd>mu</kbd> and standard deviation <kbd>sigma</kbd>.
 
</p>
<p id="binomial">
;<kbd>Integer binomial(Integer N, Double prob)<kbd>
;<kbd>Integer binomial(Integer N, Double prob)<kbd>
:Returns a binomial RN with number of observations <kbd>N</kbd> and probability of success <kbd>prob</kbd>.
:Returns a binomial RN with number of observations <kbd>N</kbd> and probability of success <kbd>prob</kbd>.
 
</p>
<p id="multinomial">
;<kbd>Integer[] multinomial(Integer N, Double... probs)<kbd>
;<kbd>Integer[] multinomial(Integer N, Double... probs)<kbd>
:Returns a list containing the results of a multinomial sorting of <kbd>N</kbd> observations, with probabilities given by the argument sequence <kbd>probs</kbd>. If the probabilities sum to 1, the list of outcomes will be the same length as the probability sequence. If the probabilities sum to less than 1, the list of outcomes will be 1 element longer than the number of probabilities to account for the missing slot.
:Returns a list containing the results of a multinomial sorting of <kbd>N</kbd> observations, with probabilities given by the argument sequence <kbd>probs</kbd>. If the probabilities sum to 1, the list of outcomes will be the same length as the probability sequence. If the probabilities sum to less than 1, the list of outcomes will be 1 element longer than the number of probabilities to account for the missing slot.
 
</p>
<p id="poisson">
;<kbd>Integer poisson(Double lambda)<kbd>
;<kbd>Integer poisson(Double lambda)<kbd>
:Returns a Poisson RN with density <kbd>lambda</kbd>.
:Returns a Poisson RN with density <kbd>lambda</kbd>.
</p>

Revision as of 15:20, 20 June 2022

Primop Index

On this page the primops are grouped either as universally applicable, or according to the Components in which they are meaningful. Primops used outside their designated purview will return empty answers (such as 0 or nil).

Each primop in these lists has a short description. Those that require further elaboration contain a link to a section with more information. Use this index to find the primop that you need, and follow the link for greater detail if you need it.

How To Read These Entries

Each entry shows the return type of the primop and types of the arguments to be passed in. For example, Double foo(Double x, Integer y) can be invoked as foo(3.0, 1), or as foo(u, v), where u has type Double and v has type Integer.

Variable Number of Arguments

Entries such as foo(String s, Number... z) represent primops with a variable number of arguments. In this case, a String is required as the first argument, but a sequence of Numbers of any length will be accepted for the second argument; e.g., foo("howdy"), foo("howdy", 1.0), foo("howdy", 1.0, 3, 17.5, 21), etc. (The sequence is stored in an array).

Universal Primops

These primops will return meaningful results when used in any context.

Math Primops

Most mathematical operations use the Java java.lang.Math class. These include Math.abs, Math.sin, Math.cos, Math.pow (for powers), etc. The complete list is contained here.

Random Numbers

Designer implements certain primops associated with random number generation (RNG) using an instance of the java.util.Random class. This RNG can be seeded from the platform so that the random sequences obtained from these operators will be fixed. These primops are as follows:

Double random(), Double random(Number y), Double random(Number x, Number y)
Returns a random Double selected respectively from [0, 1), [0, y), [x, y).
Integer irandom(), Integer irandom(Number y), Integer irandom(Number x, Number y)
Returns a random Integer selected respectively from [0, 1), [0, y), [x, y).

Double normal(Double mu, Double sigma)
Returns a Gaussian-distributed RN with mean mu and standard deviation sigma.

Integer binomial(Integer N, Double prob)
Returns a binomial RN with number of observations N and probability of success prob.

Integer[] multinomial(Integer N, Double... probs)
Returns a list containing the results of a multinomial sorting of N observations, with probabilities given by the argument sequence probs. If the probabilities sum to 1, the list of outcomes will be the same length as the probability sequence. If the probabilities sum to less than 1, the list of outcomes will be 1 element longer than the number of probabilities to account for the missing slot.

Integer poisson(Double lambda)
Returns a Poisson RN with density lambda.