Polybench - Analysis design
For Polybench® you don't have to learn any programming language to do complex mathematical analysis. Mathematical operator symbols of basic, or complex mathematical functions are placed on a drawing area, and then connected by arrows. The arrows make that you can follow the signal flow, and see how the signal changed along the way.
By clicking the symbols, the mathematical properties of the operation can easily be changed. Since the mathematical operator symbols are accompanied by extensive descriptions, tutorials and examples, you can quickly look up the exact mathematical function of them.
Moreover, you can see the effect of a parameter setting immediately, since the analysis design can be performed on-line, i.e. mathematical operators can be added and changed, while the data is running through the system. In other words: just try new mathematical operations on the fly, and see if they help. In this way, your design will evolve to a good processor.
This symbol based development technique has another advantage. Processing errors, like divisions by zero, are detected by the system, but will never let your analysis crash. Instead, a faulty operation will colour red, and state a message about what is wrong. For example, a divider could state that it has counted ten divisions by zero in the last minute. You could then decide that it is an insignificant problem, and just let it be - the system will run anyway.
A (large) number of mathematical symbols, connected by signal buses, together make a measurement configuration. A measurement configuration is not only about signal flows in time. One sub-system is that of events and control actions. A signal sample can have an event label tagged to it, that flags a certain state of the data, and that travels along with the signal sample. Viewers, or other operations, can act upon this event information and then interpret the data in a defined way.
Also, the background program can be controlled by these events, so it is possible to let the measured signals control your measurement protocol. For example: you could make a measurement configuration that detects if all electrodes are connected well, and if so, changes the screen colour to green. Or you could make an application that starts another program if a special pulse on the measurement front-end is detected.