Merge commit 'upstream/0.5'
[pysam.git] / samtools / msvc_compat.h
diff --git a/samtools/msvc_compat.h b/samtools/msvc_compat.h
new file mode 100644 (file)
index 0000000..624cc99
--- /dev/null
@@ -0,0 +1,60 @@
+// 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