Browse Source

Implementacao das funcoes 'log', 'log10' e 'exp'.

Waldemar Celes 31 years ago
parent
commit
f490b1bff8
1 changed files with 41 additions and 1 deletions
  1. 41 1
      mathlib.c

+ 41 - 1
mathlib.c

@@ -3,7 +3,7 @@
 ** Mathematics library to LUA
 */
 
-char *rcs_mathlib="$Id: mathlib.c,v 1.1 1993/12/17 18:41:19 celes Exp celes $";
+char *rcs_mathlib="$Id: mathlib.c,v 1.2 1994/07/20 22:12:27 celes Exp celes $";
 
 #include <stdio.h>		/* NULL */
 #include <math.h>
@@ -214,6 +214,43 @@ static void math_max (void)
 }
 
 
+static void math_log (void)
+{
+ double d;
+ lua_Object o = lua_getparam (1);
+ if (o == NULL)
+ { lua_error ("too few arguments to function `log'"); return; }
+ if (!lua_isnumber(o))
+ { lua_error ("incorrect arguments to function `log'"); return; }
+ d = lua_getnumber(o);
+ lua_pushnumber (log(d));
+}
+
+
+static void math_log10 (void)
+{
+ double d;
+ lua_Object o = lua_getparam (1);
+ if (o == NULL)
+ { lua_error ("too few arguments to function `log10'"); return; }
+ if (!lua_isnumber(o))
+ { lua_error ("incorrect arguments to function `log10'"); return; }
+ d = lua_getnumber(o);
+ lua_pushnumber (log10(d));
+}
+
+
+static void math_exp (void)
+{
+ double d;
+ lua_Object o = lua_getparam (1);
+ if (o == NULL)
+ { lua_error ("too few arguments to function `exp'"); return; }
+ if (!lua_isnumber(o))
+ { lua_error ("incorrect arguments to function `exp'"); return; }
+ d = lua_getnumber(o);
+ lua_pushnumber (exp(d));
+}
 
 /*
 ** Open math library
@@ -234,4 +271,7 @@ void mathlib_open (void)
  lua_register ("pow",   math_pow);
  lua_register ("min",   math_min);
  lua_register ("max",   math_max);
+ lua_register ("log",   math_log);
+ lua_register ("log10", math_log10);
+ lua_register ("exp",   math_exp);
 }