/*
$Id: Header.hh 2360 2012-03-19 08:48:32Z jisuzuki $
*/

#ifndef  HEADER
#define  HEADER

// for VC++ only
#ifdef _MSC_VER
    // required for M_PI definition, must be defined ahead of #include <math.h>
    #define _USE_MATH_DEFINES

    // required for "and", "or" operator
    #include <iso646.h>

    // required for GnuplotInterface
    #define  popen      _popen
    #define  pclose     _pclose
#endif


/* On OSX, pyport.h (one of python header files) overwrites ctype/wctype
 * functions, like 'isspace', 'isupper' and so on, in their macro badly.
 * That fails the c++ compilation when it includes <locale>.
 * To avoid to be overwritten the locale's functions unexpectedly, here
 * includes Python header at first.
 * See: https://bugs.python.org/issue10910
 */
#include <Python.h>


//#define INTEL // SwapBytesを行うとき
#include <cstdlib>
#include <iostream>
#include <cstdlib>
#include <vector>
#include <list>
#include <utility>
#include <string>
#include <cmath>
#include <fstream>
#include <cstdio>
#include <cstdarg>
#include <cctype>


//using namespace std;

// The following definitions are useful
// for applying the framework to various architectures.
typedef char               Char;
typedef unsigned char      UChar;
typedef short              Int2;
typedef unsigned short     UInt2;
typedef int                Int4;
typedef unsigned int       UInt4;
typedef long long          Int8;
typedef unsigned long long UInt8;
typedef double             Double;
typedef float              Float;
typedef bool               Bool;


#endif


