BOOLVECTOR.AND: Pushes the result of applying element-wise AND of the top item to the
second item on the BOOLVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
BOOLVECTOR.DEFINE: Defines the name on top of the NAME stack as an instruction that will
push the top item of the BOOLVECTOR stack onto the EXEC stack.
BOOLVECTOR.GET: Copies the element at index i of the top BOOLVECTOR item to the BOOLEAN stack
where i taken from the INTEGER stack limited to valid range.
BOOLVECTOR.NOT Applies the negation operator for the elements of the top item. It only considers
indices larger than the offset. The offset is taken from the INTEGER stack.
BOOLVECTOR.OR: Pushes the result of applying element-wise OR of the top item to the
second item on the BOOLVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
BOOLVECTOR.RAND: Pushes a newly generated random BOOLVECTOR. The size is taken from the INTEGER
stack, the sparsity from the FLOAT stack. If the size is <0 or the sparcity not in [0,1] this
acts as a NOOP.
BOOLVECTOR.ROTATE: Moves all elements of the top item to the adjacent position on the left.
The first item is removed while the last element of the vector is taken from the BOOLEAN stack.
BOOLVECTOR.SHOVE: Inserts the second INTEGER “deep” in the stack, at the position indexed by the
top INTEGER. The index position is calculated after the index is removed.
BOOLVECTOR.YANK: Removes an indexed item from “deep” in the stack and pushes it on top of the
stack. The index is taken from the INTEGER stack, and the indexing is done after the index is
removed.
BOOLVECTOR.YANKDUP: Pushes a copy of an indexed item “deep” in the stack onto the top of the
stack, without removing the deep item. The index is taken from the INTEGER stack, and the
indexing is done after the index is removed.
FLOATVECTOR.+: Pushes the result of applying element-wise ADD of the top item to the
second item on the FLOATVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
FLOATVECTOR.DEFINE: Defines the name on top of the NAME stack as an instruction that will
push the top item of the FLOATVECTOR stack onto the EXEC stack.
FLOATVECTOR./: Pushes the result of element-wise DIVIDE of the second item by the
top item on the FLOATVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result. If at least one divisor is zero the instruction acts
as NOOP.
FLOATVECTOR.GET: Copies the element at index i of the top FLOATVECTOR item to the FLOAT stack
where i is taken from the FLOAT stack limited to valid range.
FLOATVECTOR.*: Pushes the result of element-wise MULTIPLY of the top item to the
second item on the INTVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
FLOATVECTOR.RAND: Pushes a newly generated random INTVECTOR. The size is taken from the
INTEGER stack while the parameters for mean and standard deviation are the first (top) and
second item on the FLOAT stack. If size < 0 or standard deviation < 0 this act as a NOOP.
FLOATVECTOR.ROTATE: Moves all elements of the top item to the adjacent position on the left.
The first item is removed while the last element of the vector is taken from the FLOAT stack.
FLOATVECTOR.SET: Replaces the ith element of the top FLOATVECTOR item by the top item of the
FLOAT stack. The top item of the INTEGER stack is the index i limited to valid range.
FLOATVECTOR.SHOVE: Inserts the second FLOATVECTOR “deep” in the stack, at the position indexed by the
top INTEGER. The index position is calculated after the index is removed.
FLOATVECTOR.SINE: Pushes a FLOATVECTOR item whose elements describe a sine wave. The sine wave
for the element at index i is calulated as Asin(2pixi + phi). The amplitude A (1st),
the angle velocity x (2nd) and the phase angle phi (3rd) are taken from the FLOAT stack
(in that order). The vector length is taken from the INTEGER stack.
FLOATVECTOR.-: Pushes the result of element-wise SUBTRACT of the top item from the
second item on the INTVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
FLOATVECTOR.YANK: Removes an indexed item from “deep” in the stack and pushes it on top of the
stack. The index is taken from the INTEGER stack, and the indexing is done after the index is
removed.
FLOATVECTOR.YANKDUP: Pushes a copy of an indexed item “deep” in the stack onto the top of the
stack, without removing the deep item. The index is taken from the INTEGER stack, and the
indexing is done after the index is removed.
INTVECTOR.+: Pushes the result of applying element-wise ADD of the top item to the
second item on the INTVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
INTVECTOR.BOOLINDEX: Pushes an INTVECTOR item that contains the indices of all true values
of the top BOOLVECTOR item. For example, this instruction pushes INT[0,2] if the top
item on the BOOLVECTOR stack is BOOL[1,0,1]. The BOOLVECTOR item is popped.
INTVECTOR.CONTAINS: Pushes true to the BOOLEAN stack if the top INTEGER is included in the
top INTVECTOR item. This instruction acts as a NOOP if there is no INTEGER or INTVECTOR.
The INTVECTOR item is popped.
INTVECTOR./: Pushes the result of element-wise DIVIDE of the second item by the
top item on the INTVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result. If at least one divisor is zero the instruction acts
as NOOP.
INTVECTOR.FROMINT: Create an INTVECTOR from the elements of the INTEGER stack. The top
element (min-max corrected) describes the number of elements. The elements 1..n of
the INTEGER stack are pushed as vector to the INTVECTOR stack.
INTVECTOR.GET: Copies the element at index i of the top INTVECTOR item to the INTEGER stack
where i taken from the INTEGER stack and bound to valid range.
INTVECTOR.LOOP: Excecutes the top element of the EXEC stack once for each element
of the top INTVECTOR item. The element that corresponds to the current loop iteration
is pushed to the INTEGER stack.
INTVECTOR.*: Pushes the result of element-wise MULTIPLY of the top item to the
second item on the INTVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
INTVECTOR.RAND: Pushes a newly generated random INTVECTOR. The size, min and max values
taken from the INTEGER stack in that order. If the size is <0 or max < min this act as a NOOP.
INTVECTOR.ROTATE: Moves all elements of the top item to the adjacent position on the left.
The first item is removed while the last element of the vector is taken from the INTEGER stack.
INTVECTOR.SET: Replaces the ith element of the top INTVECTOR item by the second item of the
INTVECTOR stack. The top item of the INTEGER stack is the index i bound to valid range.
INTVECTOR.SET*INSERT: Appends the top integer item to the top INTVECTOR item - only if
it does not already exit in the intvector. If no INTVECTOR item exists, a new one will
be created
INTVECTOR.SHOVE: Inserts the second INTEGER “deep” in the stack, at the position indexed by the
top INTEGER. The index position is calculated after the index is removed.
INTVECTOR.-: Pushes the result of element-wise SUBTRACT of the top item from the
second item on the INTVECTOR stack. It applies an offset to the indices of the top
item. The offset is taken from the INTEGER stack. Indices that are outside of the valid
range of the second item are ignored. If there is no overlap of indices the second item of
the stack is pushed as a result.
INTVECTOR.YANK: Removes an indexed item from “deep” in the stack and pushes it on top of the
stack. The index is taken from the INTEGER stack, and the indexing is done after the index is
removed.
INTVECTOR.YANKDUP: Pushes a copy of an indexed item “deep” in the stack onto the top of the
stack, without removing the deep item. The index is taken from the INTEGER stack, and the
indexing is done after the index is removed.