Overview of Low-level Expression Evaluations

When the user inputs some data for evaluation SMath Studio stores this data within a simple array of primitives (operands, operators, brackets, functions - that's all). There is a type of data to store these primitives - Class Term. Before transferring input data to the Numeric Library (NuLib.dll) or to the Symbolic Library (SyLib.dll) SMath Studio needs to substitute all available variables (commonly - operands) and functions (all the built-in, user-defined or defined in plugins). This is the place for the low-level expression evaluation. Plugins of this level can extend it in the most non-abstracted way. The array of Term elements must be represented in Reverse Polish Notation (RPN) (please be sure, that you understand how it works before creating this kind of plugin). Note, that here you can create the most powerful functions with the smallest CPU & RAM usage, but it is rather hard.

Note, that all the functions that are placed inside plugins delivered in standard Setup (that is, plugins\SpecialFunctions.dll) were created using low-level expression evaluation. Even := operator is also part of this level (but it is built-in to the canvas.dll - not a plugin).


Interface to be implemented

IPluginLowLevelEvaluation interface

ScrewTurn Wiki version 2.0.37. Some of the icons created by FamFamFam.