commit 8b66040e34bb0890bd2627247579a5cf182108d1
parent 965993da071ff38f14ec49f42ef989d66d717c64
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed, 14 May 2014 13:59:02 -0300
several functions deprecated (cosh, sinh, atanh, pow, frexp, ldexp)
Diffstat:
M | lmathlib.c | | | 138 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
1 file changed, 72 insertions(+), 66 deletions(-)
diff --git a/lmathlib.c b/lmathlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lmathlib.c,v 1.98 2014/04/17 16:09:40 roberto Exp roberto $
+** $Id: lmathlib.c,v 1.99 2014/05/02 16:36:51 roberto Exp roberto $
** Standard mathematical library
** See Copyright Notice in lua.h
*/
@@ -48,31 +48,16 @@ static int math_sin (lua_State *L) {
return 1;
}
-static int math_sinh (lua_State *L) {
- lua_pushnumber(L, l_mathop(sinh)(luaL_checknumber(L, 1)));
- return 1;
-}
-
static int math_cos (lua_State *L) {
lua_pushnumber(L, l_mathop(cos)(luaL_checknumber(L, 1)));
return 1;
}
-static int math_cosh (lua_State *L) {
- lua_pushnumber(L, l_mathop(cosh)(luaL_checknumber(L, 1)));
- return 1;
-}
-
static int math_tan (lua_State *L) {
lua_pushnumber(L, l_mathop(tan)(luaL_checknumber(L, 1)));
return 1;
}
-static int math_tanh (lua_State *L) {
- lua_pushnumber(L, l_mathop(tanh)(luaL_checknumber(L, 1)));
- return 1;
-}
-
static int math_asin (lua_State *L) {
lua_pushnumber(L, l_mathop(asin)(luaL_checknumber(L, 1)));
return 1;
@@ -84,13 +69,9 @@ static int math_acos (lua_State *L) {
}
static int math_atan (lua_State *L) {
- lua_pushnumber(L, l_mathop(atan)(luaL_checknumber(L, 1)));
- return 1;
-}
-
-static int math_atan2 (lua_State *L) {
- lua_pushnumber(L, l_mathop(atan2)(luaL_checknumber(L, 1),
- luaL_checknumber(L, 2)));
+ lua_Number y = luaL_checknumber(L, 1);
+ lua_Number x = luaL_optnumber(L, 2, 1);
+ lua_pushnumber(L, l_mathop(atan2)(y, x));
return 1;
}
@@ -153,13 +134,6 @@ static int math_sqrt (lua_State *L) {
return 1;
}
-static int math_pow (lua_State *L) {
- lua_Number x = luaL_checknumber(L, 1);
- lua_Number y = luaL_checknumber(L, 2);
- lua_pushnumber(L, l_mathop(pow)(x, y));
- return 1;
-}
-
static int math_log (lua_State *L) {
lua_Number x = luaL_checknumber(L, 1);
lua_Number res;
@@ -174,13 +148,6 @@ static int math_log (lua_State *L) {
return 1;
}
-#if defined(LUA_COMPAT_LOG10)
-static int math_log10 (lua_State *L) {
- lua_pushnumber(L, l_mathop(log10)(luaL_checknumber(L, 1)));
- return 1;
-}
-#endif
-
static int math_exp (lua_State *L) {
lua_pushnumber(L, l_mathop(exp)(luaL_checknumber(L, 1)));
return 1;
@@ -196,38 +163,24 @@ static int math_rad (lua_State *L) {
return 1;
}
-static int math_frexp (lua_State *L) {
- int e;
- lua_pushnumber(L, l_mathop(frexp)(luaL_checknumber(L, 1), &e));
- lua_pushinteger(L, e);
- return 2;
-}
-
-static int math_ldexp (lua_State *L) {
- lua_Number x = luaL_checknumber(L, 1);
- int ep = luaL_checkint(L, 2);
- lua_pushnumber(L, l_mathop(ldexp)(x, ep));
- return 1;
-}
-
static int math_min (lua_State *L) {
int n = lua_gettop(L); /* number of arguments */
- int imax = 1;
+ int imin = 1; /* index of current minimum value */
int i;
luaL_argcheck(L, n >= 1, 1, "value expected");
for (i = 2; i <= n; i++) {
- if (lua_compare(L, i, imax, LUA_OPLT))
- imax = i;
+ if (lua_compare(L, i, imin, LUA_OPLT))
+ imin = i;
}
- lua_pushvalue(L, imax);
+ lua_pushvalue(L, imin);
return 1;
}
static int math_max (lua_State *L) {
int n = lua_gettop(L); /* number of arguments */
- int imax = 1;
+ int imax = 1; /* index of current maximum value */
int i;
luaL_argcheck(L, n >= 1, 1, "value expected");
for (i = 2; i <= n; i++) {
@@ -294,39 +247,92 @@ static int math_type (lua_State *L) {
}
+/*
+** {==================================================================
+** Deprecated functions (for compatibility only)
+** ===================================================================
+*/
+#if defined(LUA_COMPAT_MATHLIB)
+
+static int math_cosh (lua_State *L) {
+ lua_pushnumber(L, l_mathop(cosh)(luaL_checknumber(L, 1)));
+ return 1;
+}
+
+static int math_sinh (lua_State *L) {
+ lua_pushnumber(L, l_mathop(sinh)(luaL_checknumber(L, 1)));
+ return 1;
+}
+
+static int math_tanh (lua_State *L) {
+ lua_pushnumber(L, l_mathop(tanh)(luaL_checknumber(L, 1)));
+ return 1;
+}
+
+static int math_pow (lua_State *L) {
+ lua_Number x = luaL_checknumber(L, 1);
+ lua_Number y = luaL_checknumber(L, 2);
+ lua_pushnumber(L, l_mathop(pow)(x, y));
+ return 1;
+}
+
+static int math_frexp (lua_State *L) {
+ int e;
+ lua_pushnumber(L, l_mathop(frexp)(luaL_checknumber(L, 1), &e));
+ lua_pushinteger(L, e);
+ return 2;
+}
+
+static int math_ldexp (lua_State *L) {
+ lua_Number x = luaL_checknumber(L, 1);
+ int ep = luaL_checkint(L, 2);
+ lua_pushnumber(L, l_mathop(ldexp)(x, ep));
+ return 1;
+}
+
+static int math_log10 (lua_State *L) {
+ lua_pushnumber(L, l_mathop(log10)(luaL_checknumber(L, 1)));
+ return 1;
+}
+
+#endif
+/* }================================================================== */
+
+
+
static const luaL_Reg mathlib[] = {
{"abs", math_abs},
{"acos", math_acos},
{"asin", math_asin},
- {"atan2", math_atan2},
{"atan", math_atan},
{"ceil", math_ceil},
- {"cosh", math_cosh},
{"cos", math_cos},
{"deg", math_deg},
{"exp", math_exp},
{"floor", math_floor},
{"ifloor", math_ifloor},
{"fmod", math_fmod},
- {"frexp", math_frexp},
- {"ldexp", math_ldexp},
-#if defined(LUA_COMPAT_LOG10)
- {"log10", math_log10},
-#endif
{"log", math_log},
{"max", math_max},
{"min", math_min},
{"modf", math_modf},
- {"pow", math_pow},
{"rad", math_rad},
{"random", math_random},
{"randomseed", math_randomseed},
- {"sinh", math_sinh},
{"sin", math_sin},
{"sqrt", math_sqrt},
- {"tanh", math_tanh},
{"tan", math_tan},
{"type", math_type},
+#if defined(LUA_COMPAT_MATHLIB)
+ {"atan2", math_atan},
+ {"cosh", math_cosh},
+ {"sinh", math_sinh},
+ {"tanh", math_tanh},
+ {"pow", math_pow},
+ {"frexp", math_frexp},
+ {"ldexp", math_ldexp},
+ {"log10", math_log10},
+#endif
{NULL, NULL}
};