00001
00002
00004 #ifndef __CUtils__
00005 #define __CUtils__
00006
00007 #include <iostream>
00008 #include <iomanip>
00009 #include <math.h>
00010 #include <stdlib.h>
00011 #include <string.h>
00012 #include <vector>
00013 #include <stdio.h>
00014 #include <sstream>
00015
00016 #include <fstream>
00017 #include <regex.h>
00018
00019 #ifndef __CINT__
00020 #include <dirent.h>
00021 #include <glob.h>
00022 #include <fnmatch.h>
00023 #endif
00024
00025 #define LN2 0.6931471805599453094172321214581766
00026 #define LN10 2.30258509299404590109361379290930926799774169921875
00028 using namespace std;
00029
00035 inline bool IsPowerOfTwo (unsigned int x){ return ((x != 0) && !(x & (x - 1))); };
00036
00037
00042 inline int NextPowerOfTwo (double x){
00043 return (int)pow(2.0,ceil(log(x)/log(2.0)));
00044 };
00045
00046
00051 double medianbiasfactor(const int nn);
00052
00060 vector<string> SplitString(const string stringtodivide, const char separator);
00061
00066 string StringToUpper(string stringtoconvert);
00067
00072 string GetFileName(const string filepath);
00073
00082 string ReplaceAll(string str, const string& from, const string& to);
00083
00089 bool IsDirectory(const char* dirname);
00090
00096 inline bool IsDirectory(const string dirname){ return IsDirectory(dirname.c_str()); };
00097
00104 bool ListDirectories(const string maindir, vector <string> &subdir);
00105
00113 inline string GetFileNameFromPath(const string filepathname){ return filepathname.substr(filepathname.find_last_of("/")+1); };
00114
00120 bool IsTextFile(const char* filename);
00121
00127 inline bool IsTextFile(const string filename){ return IsTextFile(filename.c_str()); };
00128
00134 bool IsBinaryFile(const char* filename);
00135
00141 inline bool IsBinaryFile(const string filename){ return IsBinaryFile(filename.c_str()); };
00142
00148 vector<string> Glob(const char* pattern);
00149
00150 #endif
00151
00152