--- /dev/null
+// Windows-specific code, include with:\r
+// #ifdef _MSC_VER\r
+// #include <msvc_compat.h>\r
+// #endif\r
+\r
+//#define _CRT_SECURE_NO_WARNINGS\r
+#ifndef MSVC_COMPAT_H\r
+#define MSVC_COMPAT_H\r
+\r
+#define inline __inline\r
+#define __func__ __FUNCTION__\r
+\r
+#include <float.h>\r
+#define isnan _isnan\r
+static int isinf(double x) {\r
+ int y = _finite(x);\r
+ if(y == 0) {\r
+ return 0;\r
+ } else {\r
+ return 1;\r
+ }\r
+}\r
+#define alloca _alloca\r
+#define atoll _atoi64\r
+\r
+#define ftello ftell\r
+
+typedef int bool;\r
+\r
+static int R_OK = 4;
+\r
+#ifndef lgamma\r
+/* Log gamma function\r
+ * \log{\Gamma(z)}\r
+ * AS245, 2nd algorithm, http://lib.stat.cmu.edu/apstat/245\r
+ */\r
+static double lgamma(double z)\r
+{\r
+ double x = 0;\r
+ x += 0.1659470187408462e-06 / (z+7);\r
+ x += 0.9934937113930748e-05 / (z+6);\r
+ x -= 0.1385710331296526 / (z+5);\r
+ x += 12.50734324009056 / (z+4);\r
+ x -= 176.6150291498386 / (z+3);\r
+ x += 771.3234287757674 / (z+2);\r
+ x -= 1259.139216722289 / (z+1);\r
+ x += 676.5203681218835 / z;\r
+ x += 0.9999999999995183;\r
+ return log(x) - 5.58106146679532777 - z + (z-0.5) * log(z+6.5);\r
+}\r
+#endif\r
+\r
+#ifndef M_LN10\r
+#define M_LN10 2.30258509299404568402\r
+#endif\r
+#ifndef M_LN2\r
+#define M_LN2 0.69314718055994530942\r
+#endif\r
+
+#endif\r