aboutsummaryrefslogtreecommitdiff
path: root/lmathlib.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2010-11-12 13:47:34 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2010-11-12 13:47:34 -0200
commita1952d9c414a9414107eb0f55afaeea505f9a822 (patch)
tree13d6f8efdcdf7ec24b273a9d4cda24d9ced50e31 /lmathlib.c
parent1a46a713d227b77f3a6fe0ee727b6373bfea23e5 (diff)
downloadlua-a1952d9c414a9414107eb0f55afaeea505f9a822.tar.gz
lua-a1952d9c414a9414107eb0f55afaeea505f9a822.tar.bz2
lua-a1952d9c414a9414107eb0f55afaeea505f9a822.zip
'l_tvar' renamed to 'l_tg'
Diffstat (limited to 'lmathlib.c')
-rw-r--r--lmathlib.c63
1 files changed, 31 insertions, 32 deletions
diff --git a/lmathlib.c b/lmathlib.c
index b8748f9f..8e74f9cf 100644
--- a/lmathlib.c
+++ b/lmathlib.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lmathlib.c,v 1.76 2010/10/25 20:31:11 roberto Exp roberto $ 2** $Id: lmathlib.c,v 1.77 2010/11/11 15:39:12 roberto Exp roberto $
3** Standard mathematical library 3** Standard mathematical library
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -22,101 +22,100 @@
22#define RADIANS_PER_DEGREE (PI/180.0) 22#define RADIANS_PER_DEGREE (PI/180.0)
23 23
24 24
25/* macro 'l_tvar' allows the addition of an 'l' or 'f' to all 25/* macro 'l_tg' allows the addition of an 'l' or 'f' to all math operations */
26 math operations */ 26#if !defined(l_tg)
27#if !defined(l_l_tvar) 27#define l_tg(x) (x)
28#define l_tvar(x) (x)
29#endif 28#endif
30 29
31 30
32 31
33static int math_abs (lua_State *L) { 32static int math_abs (lua_State *L) {
34 lua_pushnumber(L, l_tvar(fabs)(luaL_checknumber(L, 1))); 33 lua_pushnumber(L, l_tg(fabs)(luaL_checknumber(L, 1)));
35 return 1; 34 return 1;
36} 35}
37 36
38static int math_sin (lua_State *L) { 37static int math_sin (lua_State *L) {
39 lua_pushnumber(L, l_tvar(sin)(luaL_checknumber(L, 1))); 38 lua_pushnumber(L, l_tg(sin)(luaL_checknumber(L, 1)));
40 return 1; 39 return 1;
41} 40}
42 41
43static int math_sinh (lua_State *L) { 42static int math_sinh (lua_State *L) {
44 lua_pushnumber(L, l_tvar(sinh)(luaL_checknumber(L, 1))); 43 lua_pushnumber(L, l_tg(sinh)(luaL_checknumber(L, 1)));
45 return 1; 44 return 1;
46} 45}
47 46
48static int math_cos (lua_State *L) { 47static int math_cos (lua_State *L) {
49 lua_pushnumber(L, l_tvar(cos)(luaL_checknumber(L, 1))); 48 lua_pushnumber(L, l_tg(cos)(luaL_checknumber(L, 1)));
50 return 1; 49 return 1;
51} 50}
52 51
53static int math_cosh (lua_State *L) { 52static int math_cosh (lua_State *L) {
54 lua_pushnumber(L, l_tvar(cosh)(luaL_checknumber(L, 1))); 53 lua_pushnumber(L, l_tg(cosh)(luaL_checknumber(L, 1)));
55 return 1; 54 return 1;
56} 55}
57 56
58static int math_tan (lua_State *L) { 57static int math_tan (lua_State *L) {
59 lua_pushnumber(L, l_tvar(tan)(luaL_checknumber(L, 1))); 58 lua_pushnumber(L, l_tg(tan)(luaL_checknumber(L, 1)));
60 return 1; 59 return 1;
61} 60}
62 61
63static int math_tanh (lua_State *L) { 62static int math_tanh (lua_State *L) {
64 lua_pushnumber(L, l_tvar(tanh)(luaL_checknumber(L, 1))); 63 lua_pushnumber(L, l_tg(tanh)(luaL_checknumber(L, 1)));
65 return 1; 64 return 1;
66} 65}
67 66
68static int math_asin (lua_State *L) { 67static int math_asin (lua_State *L) {
69 lua_pushnumber(L, l_tvar(asin)(luaL_checknumber(L, 1))); 68 lua_pushnumber(L, l_tg(asin)(luaL_checknumber(L, 1)));
70 return 1; 69 return 1;
71} 70}
72 71
73static int math_acos (lua_State *L) { 72static int math_acos (lua_State *L) {
74 lua_pushnumber(L, l_tvar(acos)(luaL_checknumber(L, 1))); 73 lua_pushnumber(L, l_tg(acos)(luaL_checknumber(L, 1)));
75 return 1; 74 return 1;
76} 75}
77 76
78static int math_atan (lua_State *L) { 77static int math_atan (lua_State *L) {
79 lua_pushnumber(L, l_tvar(atan)(luaL_checknumber(L, 1))); 78 lua_pushnumber(L, l_tg(atan)(luaL_checknumber(L, 1)));
80 return 1; 79 return 1;
81} 80}
82 81
83static int math_atan2 (lua_State *L) { 82static int math_atan2 (lua_State *L) {
84 lua_pushnumber(L, l_tvar(atan2)(luaL_checknumber(L, 1), 83 lua_pushnumber(L, l_tg(atan2)(luaL_checknumber(L, 1),
85 luaL_checknumber(L, 2))); 84 luaL_checknumber(L, 2)));
86 return 1; 85 return 1;
87} 86}
88 87
89static int math_ceil (lua_State *L) { 88static int math_ceil (lua_State *L) {
90 lua_pushnumber(L, l_tvar(ceil)(luaL_checknumber(L, 1))); 89 lua_pushnumber(L, l_tg(ceil)(luaL_checknumber(L, 1)));
91 return 1; 90 return 1;
92} 91}
93 92
94static int math_floor (lua_State *L) { 93static int math_floor (lua_State *L) {
95 lua_pushnumber(L, l_tvar(floor)(luaL_checknumber(L, 1))); 94 lua_pushnumber(L, l_tg(floor)(luaL_checknumber(L, 1)));
96 return 1; 95 return 1;
97} 96}
98 97
99static int math_fmod (lua_State *L) { 98static int math_fmod (lua_State *L) {
100 lua_pushnumber(L, l_tvar(fmod)(luaL_checknumber(L, 1), 99 lua_pushnumber(L, l_tg(fmod)(luaL_checknumber(L, 1),
101 luaL_checknumber(L, 2))); 100 luaL_checknumber(L, 2)));
102 return 1; 101 return 1;
103} 102}
104 103
105static int math_modf (lua_State *L) { 104static int math_modf (lua_State *L) {
106 lua_Number ip; 105 lua_Number ip;
107 lua_Number fp = l_tvar(modf)(luaL_checknumber(L, 1), &ip); 106 lua_Number fp = l_tg(modf)(luaL_checknumber(L, 1), &ip);
108 lua_pushnumber(L, ip); 107 lua_pushnumber(L, ip);
109 lua_pushnumber(L, fp); 108 lua_pushnumber(L, fp);
110 return 2; 109 return 2;
111} 110}
112 111
113static int math_sqrt (lua_State *L) { 112static int math_sqrt (lua_State *L) {
114 lua_pushnumber(L, l_tvar(sqrt)(luaL_checknumber(L, 1))); 113 lua_pushnumber(L, l_tg(sqrt)(luaL_checknumber(L, 1)));
115 return 1; 114 return 1;
116} 115}
117 116
118static int math_pow (lua_State *L) { 117static int math_pow (lua_State *L) {
119 lua_pushnumber(L, l_tvar(pow)(luaL_checknumber(L, 1), 118 lua_pushnumber(L, l_tg(pow)(luaL_checknumber(L, 1),
120 luaL_checknumber(L, 2))); 119 luaL_checknumber(L, 2)));
121 return 1; 120 return 1;
122} 121}
@@ -125,11 +124,11 @@ static int math_log (lua_State *L) {
125 lua_Number x = luaL_checknumber(L, 1); 124 lua_Number x = luaL_checknumber(L, 1);
126 lua_Number res; 125 lua_Number res;
127 if (lua_isnoneornil(L, 2)) 126 if (lua_isnoneornil(L, 2))
128 res = l_tvar(log)(x); 127 res = l_tg(log)(x);
129 else { 128 else {
130 lua_Number base = luaL_checknumber(L, 2); 129 lua_Number base = luaL_checknumber(L, 2);
131 if (base == 10.0) res = l_tvar(log10)(x); 130 if (base == 10.0) res = l_tg(log10)(x);
132 else res = l_tvar(log)(x)/l_tvar(log)(base); 131 else res = l_tg(log)(x)/l_tg(log)(base);
133 } 132 }
134 lua_pushnumber(L, res); 133 lua_pushnumber(L, res);
135 return 1; 134 return 1;
@@ -140,12 +139,12 @@ static int math_log10 (lua_State *L) {
140 luaL_error(L, "function " LUA_QL("log10") 139 luaL_error(L, "function " LUA_QL("log10")
141 " is deprecated; use log(x, 10) instead"); 140 " is deprecated; use log(x, 10) instead");
142#endif 141#endif
143 lua_pushnumber(L, l_tvar(log10)(luaL_checknumber(L, 1))); 142 lua_pushnumber(L, l_tg(log10)(luaL_checknumber(L, 1)));
144 return 1; 143 return 1;
145} 144}
146 145
147static int math_exp (lua_State *L) { 146static int math_exp (lua_State *L) {
148 lua_pushnumber(L, l_tvar(exp)(luaL_checknumber(L, 1))); 147 lua_pushnumber(L, l_tg(exp)(luaL_checknumber(L, 1)));
149 return 1; 148 return 1;
150} 149}
151 150
@@ -161,14 +160,14 @@ static int math_rad (lua_State *L) {
161 160
162static int math_frexp (lua_State *L) { 161static int math_frexp (lua_State *L) {
163 int e; 162 int e;
164 lua_pushnumber(L, l_tvar(frexp)(luaL_checknumber(L, 1), &e)); 163 lua_pushnumber(L, l_tg(frexp)(luaL_checknumber(L, 1), &e));
165 lua_pushinteger(L, e); 164 lua_pushinteger(L, e);
166 return 2; 165 return 2;
167} 166}
168 167
169static int math_ldexp (lua_State *L) { 168static int math_ldexp (lua_State *L) {
170 lua_pushnumber(L, l_tvar(ldexp)(luaL_checknumber(L, 1), 169 lua_pushnumber(L, l_tg(ldexp)(luaL_checknumber(L, 1),
171 luaL_checkint(L, 2))); 170 luaL_checkint(L, 2)));
172 return 1; 171 return 1;
173} 172}
174 173
@@ -214,14 +213,14 @@ static int math_random (lua_State *L) {
214 case 1: { /* only upper limit */ 213 case 1: { /* only upper limit */
215 lua_Number u = luaL_checknumber(L, 1); 214 lua_Number u = luaL_checknumber(L, 1);
216 luaL_argcheck(L, 1.0 <= u, 1, "interval is empty"); 215 luaL_argcheck(L, 1.0 <= u, 1, "interval is empty");
217 lua_pushnumber(L, l_tvar(floor)(r*u) + 1.0); /* int in [1, u] */ 216 lua_pushnumber(L, l_tg(floor)(r*u) + 1.0); /* int in [1, u] */
218 break; 217 break;
219 } 218 }
220 case 2: { /* lower and upper limits */ 219 case 2: { /* lower and upper limits */
221 lua_Number l = luaL_checknumber(L, 1); 220 lua_Number l = luaL_checknumber(L, 1);
222 lua_Number u = luaL_checknumber(L, 2); 221 lua_Number u = luaL_checknumber(L, 2);
223 luaL_argcheck(L, l <= u, 2, "interval is empty"); 222 luaL_argcheck(L, l <= u, 2, "interval is empty");
224 lua_pushnumber(L, l_tvar(floor)(r*(u-l+1)) + l); /* int in [l, u] */ 223 lua_pushnumber(L, l_tg(floor)(r*(u-l+1)) + l); /* int in [l, u] */
225 break; 224 break;
226 } 225 }
227 default: return luaL_error(L, "wrong number of arguments"); 226 default: return luaL_error(L, "wrong number of arguments");