Numipulator Processing Engine
The diagram above shows the flow of data within Numipulator during one cycle of the processing engine. Not all details are shown (e.g. syntax checking and error checking).
The input specifications of the numipulation boxes are taken by the processing engine, which firstly takes any defined init fields for memory boxes and copies them into the mem fields, if they are empty, and then carries out input mapping, using the text to number mappings defined in the Mappings declaration to replace text with numbers. This leaves inputs that contain only numbers (or lists of numbers), reserved words specifying current time or user-interaction values, such as now, click and keypad, and reference names. The processing engine analyses the reference names in the inputs of these to determine an appropriate Evaluation Order for the numipulation boxes (starting with those whose inputs are not dependent on others, then those dependent on the outputs of these, and so on).
Once the values of the reserved names, such as now, click and keypad have been determined (this is done once only during a cycle - note: click and keypad are always 0 on the first cycle of a set of repetitions), Function Evaluation can take place, based on the Evaluation Order, to determine the input values and the output values of the numipulation boxes.
If some of the outputs are specified as controls for the processing engine, these are checked to determine whether there should be more repetitions and, if so, whether the Graphics Formatter display, if used, should be updated, and what the delay before the next repetition should be. Based on usage and the control values, the Animation Zone and/or the Graphics Formatter displays are updated. For the Animation Zone, this is done by taking the appropriate output list of format codes and determining the colours and borders of the cells, using simple format mapping. For the Graphics Formatter, this is generally done using two list outputs: a value list and a list of format codes. The formats of the cells are derived from the format codes using built-in format mapping. Some of these formats also display the corresponding number on the value list, which may be subject to user-defined value to text mapping. Separate value to text mapping is also applicable to the feedback values, if used, and the appropriate Feedback fields are displayed.
If a delay has been specified and the Graphics Formatter is in use allowing graphical input, the indicator for this is changed to green, so that the user knows that they may tap or click on a cell of the Graphical Formatter. At the end of the delay time the indicator is turned back to red. If the user has clicked on a cell, the value of the internal value will have been set to 1, otherwise it will be 0. The row and column number of the last cell clicked will be displayed in the Graphin1 and Graphin2 fields.
The Animation Zone keypad monitor is checked to determine the last keypad key selected since the beginning of the cycle. The keypad value is set to the appropriate number (1-9) if a key was selected; if not, it is set to 0.
For any memory numipulation boxes in use, the output values derived from the next specifications are taken by the processing engine, which updates both the mem specifications in the boxes (so that the user can monitor progress) and the input values available to the next Function Evaluation.
If another cycle is due, based on failure of the Repeat Until termination condition, this begins with updating of the values of the reserved names now, click and keypad and Function Evaluation; determination of the Evaluation Order and input text to number mapping are not repeated, as these remain unchanged.
Copyright TopAccolades Limited, 2023