package jmathlib.toolbox.demos; import jmathlib.core.tokens.*; import jmathlib.core.tokens.numbertokens.DoubleNumberToken; import jmathlib.core.functions.*; import jmathlib.core.interpreter.*; /**An example of an external function - it returns 2 * the first parameter*/ public class example01 extends ExternalFunction { /**Execute the function returning the first parameter operands - array of parameters*/ public OperandToken evaluate(Token[] operands, GlobalValues globals) { if (operands[0] instanceof DoubleNumberToken) { double[][] argValues = ((DoubleNumberToken)operands[0]).getReValues(); int argSizeX = ((DoubleNumberToken)operands[0]).getSizeX(); int argSizeY = ((DoubleNumberToken)operands[0]).getSizeY(); ErrorLogger.debugLine("*** demo function: example01 ***"); /* Check dimensions of matrix */ //ErrorLogger.debugLine("DoubleNumberToken: sub (n*m) - (n*m)"); for (int yy=0; yy<argSizeY; yy++) { for (int xx=0; xx<argSizeX; xx++) { argValues[yy][xx] = 2 * argValues[yy][xx] ; } } return new DoubleNumberToken(argValues); } return new DoubleNumberToken(999.999); } }