QFunctions try to recycle as much of the QDataSet interface as possible to
define functions. Functions take N parameters as input and result in M parameter
output. The N parameters are passed into value as a rank 1 bundle QDataSet, or rank 0
dataset when there is just one input.
The M parameter output is returned in a rank 1 bundle dataset. The method
exampleInput returns an example input that allows for discovery of the function.
Implementations will generally extend AbstractQFunction, which implements
values() and exampleOutput().
Goals:
- support extra tick labels of axis, which are often the result of SPICE kernel evaluations.
- allow discovery of function, so the system can pick it up and use it.
- allow tabulation and plotting of a function.
- non-linear function optimization.