#ifndef MOTHUR_H
#define MOTHUR_H
-using namespace std;
/*
#include <math.h>
#include <algorithm>
+//misc
+#include <cerrno>
+#include <ctime>
+#include <limits>
+
+using namespace std;
+
+#ifdef _WIN32
+ #define exp(x) (exp((double) x))
+ #define sqrt(x) (sqrt((double) x))
+ #define log10(x) (log10((double) x))
+ #define log2(x) (log10(x)/log10(2))
+ #define isnan(x) ((x) != (x))
+ #define isinf(x) (fabs(x) == std::numeric_limits<double>::infinity())
+#else
+ #include <sys/wait.h>
+ #include <unistd.h>
+#endif
+
+
typedef unsigned long long ull;
struct IntNode {
IntNode* left;
IntNode* right;
};
-
+
+struct ThreadNode {
+ int* pid;
+ IntNode* left;
+ IntNode* right;
+};
+
/***********************************************************************/
// snagged from http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.2
f.putback(d);
}
+/***********************************************************************/
+
+inline bool isTrue(string f){
+
+ if ((f == "TRUE") || (f == "T") || (f == "true") || (f == "t")) { return true; }
+ else { return false; }
+}
/***********************************************************************/
return simpleName;
}
+
/***********************************************************************/
inline int factorial(int num){
}
+/***********************************************************************/
+
+inline int getNumSeqs(ifstream& file){
+
+ int numSeqs = count(istreambuf_iterator<char>(file),istreambuf_iterator<char>(), '>');
+ file.seekg(0);
+ return numSeqs;
+
+}
+
/***********************************************************************/
//This function parses the estimator options and puts them in a vector