diff options
Diffstat (limited to 'mathlib.c')
| -rw-r--r-- | mathlib.c | 19 |
1 files changed, 17 insertions, 2 deletions
| @@ -3,9 +3,9 @@ | |||
| 3 | ** Mathematics library to LUA | 3 | ** Mathematics library to LUA |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | char *rcs_mathlib="$Id: mathlib.c,v 1.12 1995/10/09 12:48:38 roberto Exp roberto $"; | 6 | char *rcs_mathlib="$Id: mathlib.c,v 1.13 1995/11/10 17:54:31 roberto Exp roberto $"; |
| 7 | 7 | ||
| 8 | #include <stdio.h> /* NULL */ | 8 | #include <stdlib.h> |
| 9 | #include <math.h> | 9 | #include <math.h> |
| 10 | 10 | ||
| 11 | #include "lualib.h" | 11 | #include "lualib.h" |
| @@ -184,6 +184,18 @@ static void math_rad (void) | |||
| 184 | lua_pushnumber (d/180.*PI); | 184 | lua_pushnumber (d/180.*PI); |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | static void math_random (void) | ||
| 188 | { | ||
| 189 | lua_pushnumber((double)(rand()%RAND_MAX) / (double)RAND_MAX); | ||
| 190 | } | ||
| 191 | |||
| 192 | static void math_randomseed (void) | ||
| 193 | { | ||
| 194 | srand(lua_check_number(1, "randomseed")); | ||
| 195 | } | ||
| 196 | |||
| 197 | |||
| 198 | |||
| 187 | /* | 199 | /* |
| 188 | ** Open math library | 200 | ** Open math library |
| 189 | */ | 201 | */ |
| @@ -208,5 +220,8 @@ void mathlib_open (void) | |||
| 208 | lua_register ("exp", math_exp); | 220 | lua_register ("exp", math_exp); |
| 209 | lua_register ("deg", math_deg); | 221 | lua_register ("deg", math_deg); |
| 210 | lua_register ("rad", math_rad); | 222 | lua_register ("rad", math_rad); |
| 223 | lua_register ("random", math_random); | ||
| 224 | lua_register ("randomseed", math_randomseed); | ||
| 225 | |||
| 211 | old_pow = lua_lockobject(lua_setfallback("arith", math_pow)); | 226 | old_pow = lua_lockobject(lua_setfallback("arith", math_pow)); |
| 212 | } | 227 | } |
