Class MatrixTurboEvaluator
java.lang.Object
com.github.gbenroscience.parser.turbo.tools.ScalarTurboEvaluator1
com.github.gbenroscience.parser.turbo.tools.MatrixTurboEvaluator
- All Implemented Interfaces:
Savable,TurboExpressionEvaluator,Serializable
public final class MatrixTurboEvaluator
extends ScalarTurboEvaluator1
implements TurboExpressionEvaluator
Allocation-free Turbo compiler optimized for ParserNG's flat-array Matrix
implementation. Uses compile-time bound ResultCaches and Zero-Argument
MethodHandle trees to maximize JIT inlining and execution speed.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final classNested classes/interfaces inherited from class com.github.gbenroscience.parser.turbo.tools.ScalarTurboEvaluator1
ScalarTurboEvaluator1.AndroidFriendlyMethodHandles, ScalarTurboEvaluator1.MethodHandlePolyfill -
Field Summary
Fields inherited from class com.github.gbenroscience.parser.turbo.tools.ScalarTurboEvaluator1
errorLog, postfix, registry, SCALAR_GATEKEEPER_HANDLE, slots, VECTOR_2_GATEKEEPER_HANDLE, VECTOR_GATEKEEPER_HANDLE, willFoldConstants -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic MathExpression.EvalResult[]compile()////////////////////////////////////////UPDATE STARTS////////////////////////////////////////////////////////////////////////////////static MathExpression.EvalResultdispatchMatrixFunction(MathExpression.EvalResult[] args, String funcName, MatrixTurboEvaluator.ResultCache cache) static MathExpression.EvalResultdispatchUnaryOp(MathExpression.EvalResult operand, char op, MatrixTurboEvaluator.ResultCache cache) static doublegetVar(double[] vars, int index) static MathExpression.EvalResultinvokeRegistryMethod(int methodId, MathExpression.EvalResult[] argsValues) static MathExpression.EvalResultinvokeRegistryMethod(int methodId, MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult[] argsValues) static MathExpression.EvalResult[]static MathExpression.EvalResult[]static MathExpression.EvalResult[]packArgs2(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b) static MathExpression.EvalResult[]packArgs3(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c) static MathExpression.EvalResult[]packArgs4(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d) static MathExpression.EvalResult[]packArgs5(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d, MathExpression.EvalResult e) static MathExpression.EvalResult[]packArgsN(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult... args) static MatrixrandomFillTurbo(int n, int rowSize, int colSize, MatrixTurboEvaluator.ResultCache cache) static voidrandomFillTurbo(Matrix m, int n) static MatrixunitMatrix(int rowSize, int colSize, MatrixTurboEvaluator.ResultCache cache) static MathExpression.EvalResultwrapDouble(double val, MatrixTurboEvaluator.ResultCache cache) Methods inherited from class com.github.gbenroscience.parser.turbo.tools.ScalarTurboEvaluator1
acot, acsc, add, asec, combineArgs, compileScalar, cot, createConstantHandle, csc, cube, divide, executeQuadraticRoot, executeTartagliaRoot, executeTurboIntegral, executeTurboODE, executeTurboRoot, getDoubleFromArray, getNextResult, getOptimizedPowerHandle, getUnaryFunctionHandle, gradToRad, invokeComplexStats, invokeComplexStats1, invokeCustomFunction, invokeRegistryMethod, isWillFoldConstants, modulo, multiply, quad, scalarStatsGatekeeper, sec, setWillFoldConstants, square, subtract, unwrapToDouble, vectorNonStatsGatekeeper, vectorStatsGatekeeper
-
Constructor Details
-
MatrixTurboEvaluator
-
-
Method Details
-
invokeRegistryMethod
public static MathExpression.EvalResult invokeRegistryMethod(int methodId, MathExpression.EvalResult[] argsValues) -
compile
Description copied from class:ScalarTurboEvaluator1////////////////////////////////////////UPDATE STARTS////////////////////////////////////////////////////////////////////////////////- Specified by:
compilein interfaceTurboExpressionEvaluator- Overrides:
compilein classScalarTurboEvaluator1- Returns:
- A FastCompositeExpression ready for evaluation
- Throws:
Throwable- if compilation fails
-
wrapDouble
public static MathExpression.EvalResult wrapDouble(double val, MatrixTurboEvaluator.ResultCache cache) -
getVar
public static double getVar(double[] vars, int index) -
collectArgsArray
-
invokeRegistryMethod
public static MathExpression.EvalResult invokeRegistryMethod(int methodId, MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult[] argsValues) -
packArgs0
-
packArgs1
public static MathExpression.EvalResult[] packArgs1(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a) -
packArgs2
public static MathExpression.EvalResult[] packArgs2(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b) -
packArgs3
public static MathExpression.EvalResult[] packArgs3(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c) -
packArgs4
public static MathExpression.EvalResult[] packArgs4(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d) -
packArgs5
public static MathExpression.EvalResult[] packArgs5(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d, MathExpression.EvalResult e) -
packArgsN
public static MathExpression.EvalResult[] packArgsN(MatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult... args) -
dispatchMatrixFunction
public static MathExpression.EvalResult dispatchMatrixFunction(MathExpression.EvalResult[] args, String funcName, MatrixTurboEvaluator.ResultCache cache) -
dispatchUnaryOp
public static MathExpression.EvalResult dispatchUnaryOp(MathExpression.EvalResult operand, char op, MatrixTurboEvaluator.ResultCache cache) -
unitMatrix
-
randomFillTurbo
public static Matrix randomFillTurbo(int n, int rowSize, int colSize, MatrixTurboEvaluator.ResultCache cache) -
randomFillTurbo
-