Class AndroidCapableMatrixTurboEvaluator
java.lang.Object
com.github.gbenroscience.parser.turbo.tools.ScalarTurboEvaluator1
com.github.gbenroscience.parser.turbo.tools.AndroidCapableMatrixTurboEvaluator
- All Implemented Interfaces:
Savable,TurboExpressionEvaluator,Serializable
public final class AndroidCapableMatrixTurboEvaluator
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic MathExpression.EvalResult[]compile()////////////////////////////////////////UPDATE STARTS////////////////////////////////////////////////////////////////////////////////static MathExpression.EvalResultdispatchMatrixFunction(MathExpression.EvalResult[] args, String funcName, AndroidCapableMatrixTurboEvaluator.ResultCache cache) static MathExpression.EvalResultdispatchUnaryOp(MathExpression.EvalResult operand, char op, AndroidCapableMatrixTurboEvaluator.ResultCache cache) static doublegetVar(double[] vars, int index) static MathExpression.EvalResultinvokeRegistryMethod(int methodId, MathExpression.EvalResult[] argsValues) static MathExpression.EvalResultinvokeRegistryMethod(int methodId, AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult[] argsValues) booleanstatic MathExpression.EvalResult[]static MathExpression.EvalResult[]static MathExpression.EvalResult[]packArgs2(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b) static MathExpression.EvalResult[]packArgs3(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c) static MathExpression.EvalResult[]packArgs4(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d) static MathExpression.EvalResult[]packArgs5(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d, MathExpression.EvalResult e) static MathExpression.EvalResult[]static MatrixrandomFillTurbo(int n, int rowSize, int colSize, AndroidCapableMatrixTurboEvaluator.ResultCache cache) static voidrandomFillTurbo(Matrix m, int n) voidsetWillFoldConstants(boolean willFoldConstants) static MathExpression.EvalResultwrapDouble(double val, AndroidCapableMatrixTurboEvaluator.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, modulo, multiply, quad, scalarStatsGatekeeper, sec, square, subtract, unwrapToDouble, vectorNonStatsGatekeeper, vectorStatsGatekeeper
-
Constructor Details
-
AndroidCapableMatrixTurboEvaluator
-
-
Method Details
-
setWillFoldConstants
public void setWillFoldConstants(boolean willFoldConstants) - Overrides:
setWillFoldConstantsin classScalarTurboEvaluator1
-
isWillFoldConstants
public boolean isWillFoldConstants()- Overrides:
isWillFoldConstantsin classScalarTurboEvaluator1
-
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, AndroidCapableMatrixTurboEvaluator.ResultCache cache) -
getVar
public static double getVar(double[] vars, int index) -
collectArgsArray
-
invokeRegistryMethod
public static MathExpression.EvalResult invokeRegistryMethod(int methodId, AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult[] argsValues) -
packArgs0
public static MathExpression.EvalResult[] packArgs0(AndroidCapableMatrixTurboEvaluator.ResultCache cache) -
packArgs1
public static MathExpression.EvalResult[] packArgs1(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a) -
packArgs2
public static MathExpression.EvalResult[] packArgs2(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b) -
packArgs3
public static MathExpression.EvalResult[] packArgs3(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c) -
packArgs4
public static MathExpression.EvalResult[] packArgs4(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d) -
packArgs5
public static MathExpression.EvalResult[] packArgs5(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult a, MathExpression.EvalResult b, MathExpression.EvalResult c, MathExpression.EvalResult d, MathExpression.EvalResult e) -
packArgsN
public static MathExpression.EvalResult[] packArgsN(AndroidCapableMatrixTurboEvaluator.ResultCache cache, MathExpression.EvalResult... args) -
dispatchMatrixFunction
public static MathExpression.EvalResult dispatchMatrixFunction(MathExpression.EvalResult[] args, String funcName, AndroidCapableMatrixTurboEvaluator.ResultCache cache) -
dispatchUnaryOp
public static MathExpression.EvalResult dispatchUnaryOp(MathExpression.EvalResult operand, char op, AndroidCapableMatrixTurboEvaluator.ResultCache cache) -
randomFillTurbo
public static Matrix randomFillTurbo(int n, int rowSize, int colSize, AndroidCapableMatrixTurboEvaluator.ResultCache cache) -
randomFillTurbo
-