|
|
|
@ -1020,6 +1020,7 @@
|
|
|
|
|
-#define PI (3.14159265358979323846)
|
|
|
|
|
-#define RADIANS_PER_DEGREE (PI/180.0)
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
+#ifdef LNUM_FLOAT
|
|
|
|
|
+# define PI (3.14159265358979323846F)
|
|
|
|
|
+#elif defined(M_PI)
|
|
|
|
@ -1028,7 +1029,7 @@
|
|
|
|
|
+# define PI (3.14159265358979323846264338327950288)
|
|
|
|
|
+#endif
|
|
|
|
|
+#define RADIANS_PER_DEGREE (PI/180)
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+#undef HUGE
|
|
|
|
|
+#ifdef LNUM_FLOAT
|
|
|
|
|
+# define HUGE HUGE_VALF
|
|
|
|
@ -3432,10 +3433,10 @@
|
|
|
|
|
+ case TM_POW: if (try_powint( ri, ib, ic)) return; break;
|
|
|
|
|
+ case TM_UNM: if (try_unmint( ri, ib)) return; break;
|
|
|
|
|
+ default: lua_assert(0);
|
|
|
|
|
+ }
|
|
|
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ /* Fallback to floating point, when leaving range. */
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
+#ifdef LNUM_COMPLEX
|
|
|
|
|
+ if ((nvalue_img(b)!=0) || (nvalue_img(c)!=0)) {
|
|
|
|
|
+ lua_Complex r;
|
|
|
|
@ -3455,7 +3456,7 @@
|
|
|
|
|
+ default: lua_assert(0); r=0;
|
|
|
|
|
+ }
|
|
|
|
|
+ setnvalue_complex( ra, r );
|
|
|
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+#endif
|
|
|
|
@ -3476,7 +3477,7 @@
|
|
|
|
|
+ if (!call_binTM(L, rb, rc, ra, op))
|
|
|
|
|
+ luaG_aritherror(L, rb, rc);
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+/* Helper macro to sort arithmetic operations into four categories:
|
|
|
|
|
+ * TK_INT: integer - integer operands
|
|
|
|
|
+ * TK_NUMBER: number - number (non complex, either may be integer)
|
|
|
|
|