|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.luaj.vm2.Varargs org.luaj.vm2.LuaValue org.luaj.vm2.LuaFunction org.luaj.vm2.lib.LibFunction org.luaj.vm2.lib.OneArgFunction org.luaj.vm2.lib.MathLib
public class MathLib
Subclass of 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
JmePlatform#standardGlobals()
To instantiate and use it directly,
link it into your globals table via LuaValue.load(LuaValue)
using code such as:
LuaTable _G = new LuaTable();
LuaThread.setGlobals(_G);
_G.load(new BaseLib());
_G.load(new PackageLib());
_G.load(new MathLib());
System.out.println( _G.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
,
JmePlatform
,
JseMathLib
,
http://www.lua.org/manual/5.1/manual.html#5.6Field Summary | |
---|---|
static MathLib |
MATHLIB
|
Fields inherited from class org.luaj.vm2.lib.LibFunction |
---|
name, opcode |
Fields inherited from class org.luaj.vm2.LuaFunction |
---|
env, s_metatable |
Fields inherited from class org.luaj.vm2.LuaValue |
---|
ADD, CALL, CONCAT, DIV, EMPTYSTRING, EQ, FALSE, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILS, NONE, NOVALS, ONE, POW, SUB, TBOOLEAN, TFUNCTION, TINT, TLIGHTUSERDATA, TNIL, TNONE, TNUMBER, TOSTRING, TRUE, TSTRING, TTABLE, TTHREAD, TUSERDATA, TVALUE, TYPE_NAMES, UNM, ZERO |
Constructor Summary | |
---|---|
MathLib()
|
Method Summary | |
---|---|
LuaValue |
call(LuaValue arg)
Call this with 1 argument, including metatag processing,
and return only the first 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 |
Methods inherited from class org.luaj.vm2.lib.OneArgFunction |
---|
call, call, call, invoke |
Methods inherited from class org.luaj.vm2.lib.LibFunction |
---|
bind, bind, newupe, newupl, newupn, tojstring |
Methods inherited from class org.luaj.vm2.LuaFunction |
---|
checkfunction, getfenv, getmetatable, isfunction, optfunction, setfenv, type, typename |
Methods inherited from class org.luaj.vm2.Varargs |
---|
argcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, 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, subargs, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, toshort, touserdata, touserdata, type |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static MathLib MATHLIB
Constructor Detail |
---|
public MathLib()
Method Detail |
---|
public LuaValue call(LuaValue arg)
LuaValue
this
with 1 argument, including metatag processing,
and return only the first return value.
If this
is a LuaFunction
, call it,
and return only its first return value, dropping any others.
Otherwise, look for the CALL
metatag and call that.
If the return value is a Varargs
, only the 1st value will be returned.
To get multiple values, use LuaValue.invoke()
instead.
To call this
as a method call, use LuaValue.method(LuaValue)
instead.
call
in class OneArgFunction
arg
- First argument to supply to the called function
(this(arg))
, or NIL
if there were none.LuaValue.call()
,
LuaValue.call(LuaValue,LuaValue)
,
LuaValue.call(LuaValue, LuaValue, LuaValue)
,
#invoke(LuaValue)
,
LuaValue.method(String,LuaValue)
,
LuaValue.method(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)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |