public class MathLib extends TwoArgFunction
LibFunction which implements the lua standard math
library.
It contains only the math library support that is possible on JME.
For a more complete implementation based on math functions specific to JSE
use JseMathLib.
In Particular the following math functions are not implemented by this library:
The implementations of exp() and pow() are constructed by
hand for JME, so will be slower and less accurate than when executed on the JSE platform.
Typically, this library is included as part of a call to either
JsePlatform.standardGlobals() or
org.luaj.vm2.lib.jme.JmePlatform#standardGlobals()
Globals globals = JsePlatform.standardGlobals();
System.out.println( globals.get("math").get("sqrt").call( LuaValue.valueOf(2) ) );
When using JsePlatform as in this example,
the subclass JseMathLib will
be included, which also includes this base functionality.
To instantiate and use it directly,
link it into your globals table via LuaValue.load(LuaValue) using code such as:
Globals globals = new Globals();
globals.load(new JseBaseLib());
globals.load(new PackageLib());
globals.load(new MathLib());
System.out.println( globals.get("math").get("sqrt").call( LuaValue.valueOf(2) ) );
Doing so will ensure the library is properly initialized
and loaded into the globals table.
This has been implemented to match as closely as possible the behavior in the corresponding library in C.
LibFunction,
JsePlatform,
org.luaj.vm2.lib.jme.JmePlatform,
JseMathLib,
Lua 5.2 Math Lib Reference| 限定符和类型 | 类和说明 |
|---|---|
protected static class |
MathLib.BinaryOp |
protected static class |
MathLib.UnaryOp |
| 限定符和类型 | 字段和说明 |
|---|---|
static MathLib |
MATHLIB
Pointer to the latest MathLib instance, used only to dispatch
math.exp to tha correct platform math library.
|
name, opcodes_metatableADD, BAND, BNOT, BOR, BXOR, CALL, CONCAT, DIV, EMPTYSTRING, ENV, EQ, FALSE, IDIV, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILS, NONE, NOVALS, ONE, POW, SHL, SHR, SUB, TBOOLEAN, TFUNCTION, TINT, TLIGHTUSERDATA, TNIL, TNONE, TNUMBER, TOSTRING, TRUE, TSTRING, TTABLE, TTHREAD, TUSERDATA, TVALUE, TYPE_NAMES, UNM, uservalue, ZERO| 构造器和说明 |
|---|
MathLib()
Construct a MathLib, which can be initialized by calling it with a
modname string, and a global environment table as arguments using
call(LuaValue, LuaValue). |
| 限定符和类型 | 方法和说明 |
|---|---|
LuaValue |
call(LuaValue modname,
LuaValue env)
Perform one-time initialization on the library by creating a table
containing the library functions, adding that table to the supplied environment,
adding the table to package.loaded, and returning table as the return value.
|
static double |
dpow_d(double a,
double b) |
protected static double |
dpow_default(double a,
double b)
Default JME version computes using longhand heuristics.
|
double |
dpow_lib(double a,
double b)
Hook to override default dpow behavior with faster implementation.
|
static LuaValue |
dpow(double a,
double b)
compute power using installed math library, or default if there is no math library installed
|
call, call, call, invokecheckfunction, classnamestub, getfenv, getmetatable, isfunction, name, optfunction, setfenv, strvalue, type, typenameadd, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, band, band, bnot, bor, bor, buffer, bxor, bxor, call, callmt, checkboolean, checkclosure, checkdouble, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eq_b, eq, eqmtcall, equals, error, get, get, get, gettable, getuservalue, gt_b, gt_b, gt_b, gt, gt, gt, gteq_b, gteq_b, gteq_b, gteq, gteq, gteq, idiv, idiv, illegal, inext, initupvalue1, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isint, isinttype, islong, isnil, isnumber, isstring, istable, isthread, isuserdata, isuserdata, isvalidkey, jcall, jget, jset, len, lenerror, length, listOf, listOf, load, lt_b, lt_b, lt_b, lt, lt, lt, lteq_b, lteq_b, lteq_b, lteq, lteq, lteq, metatableOf, metatag, method, method, method, method, method, method, mod, mod, mod, modFrom, mul, mul, mul, narg, neg, neq_b, neq, next, not, onInvoke, optboolean, optclosure, optdouble, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, or, pow, pow, pow, powWith, powWith, presize, raweq, raweq, raweq, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, setuservalue, shl, shl, shr, shr, strcmp, strcmp, strongvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tolong, tonumber, toshort, tostring, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOfargcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, dealias, eval, isfunction, isnil, isnoneornil, isnumber, isstring, istable, isTailcall, isthread, isuserdata, isvalue, optboolean, optclosure, optdouble, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, toshort, touserdata, touserdata, typepublic static MathLib MATHLIB
public MathLib()
call(LuaValue, LuaValue).public LuaValue call(LuaValue modname, LuaValue env)
call 在类中 TwoArgFunctionmodname - the module name supplied if this is loaded via 'require'.env - the environment to load into, typically a Globals instance.(this(arg1,arg2)), or LuaValue.NIL if there were none.LuaValue.call(),
LuaValue.call(LuaValue),
LuaValue.call(LuaValue, LuaValue, LuaValue),
LuaValue.invoke(LuaValue, Varargs),
LuaValue.method(String,LuaValue,LuaValue),
LuaValue.method(LuaValue,LuaValue,LuaValue)public static LuaValue dpow(double a, double b)
public static double dpow_d(double a,
double b)
public double dpow_lib(double a,
double b)
protected static double dpow_default(double a,
double b)
Copyright © 2020. All rights reserved.