00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
#ifndef _gnDefs_h_
00012
#define _gnDefs_h_
00013
00014
#ifdef __GNUG__
00015
#pragma interface "gn/gnDefs.h"
00016
#endif
00017
00018
#include <limits.h>
00019
#include <float.h>
00020
#include "gn/gnSetup.h"
00021
00022
00023 typedef unsigned char boolean;
00024 typedef unsigned char int1;
00025
00026 typedef signed char int8;
00027 typedef signed short int int16;
00028 typedef signed int int32;
00029 typedef signed long long int64;
00030 typedef signed char sint8;
00031 typedef signed short int sint16;
00032 typedef signed int sint32;
00033 typedef signed long int sint64;
00034
00035 typedef unsigned char uint8;
00036 typedef unsigned short int uint16;
00037 typedef unsigned int uint32;
00038 typedef unsigned long long uint64;
00039 typedef unsigned int uint;
00040
00041 typedef float float32;
00042 typedef double float64;
00043
00044
00045
#ifndef TRUE
00046 #define TRUE 1
00047
#endif
00048
#ifndef FALSE
00049 #define FALSE 0
00050
#endif
00051
#ifndef PI
00052 #define PI 3.1415926535897932384626433832795028
00053
#endif
00054
00055 #define BOOLEAN_MIN 0
00056 #define BOOLEAN_MAX 1
00057 #define INT0_MIN 0
00058 #define INT1_MAX 1
00059
00060 #define INT8_BYTE_SIZE 1
00061 #define INT16_BYTE_SIZE 2
00062 #define INT32_BYTE_SIZE 4
00063 #define INT64_BYTE_SIZE 8
00064
00065 #define INT8_BIT_SIZE 8
00066 #define INT16_BIT_SIZE 16
00067 #define INT32_BIT_SIZE 32
00068 #define INT64_BIT_SIZE 64
00069
00070 #define UINT8_BYTE_SIZE 1
00071 #define UINT16_BYTE_SIZE 2
00072 #define UINT32_BYTE_SIZE 4
00073 #define UINT64_BYTE_SIZE 8
00074
00075 #define UINT8_BIT_SIZE 8
00076 #define UINT16_BIT_SIZE 16
00077 #define UINT32_BIT_SIZE 32
00078 #define UINT64_BIT_SIZE 64
00079
00080
00081 #define INT8_MIN SCHAR_MIN //0x00
00082 #define INT8_MAX SCHAR_MAX //0x7f
00083 #define INT16_MIN SHRT_MIN //0x0000
00084 #define INT16_MAX SHRT_MAX //0x7fff
00085 #define INT32_MIN INT_MIN //0x0000000
00086 #define INT32_MAX INT_MAX //0x7fffffff
00087 #define INT64_MIN LONG_MIN //0x0000000000000000
00088 #define INT64_MAX LONG_MAX //0x7fffffffffffffff
00089
00090 #define UINT8_MIN 0 //0x00
00091 #define UINT8_MAX UCHAR_MAX //0xff
00092 #define UINT16_MIN 0 //0x0000
00093 #define UINT16_MAX USHRT_MAX //0xffff
00094 #define UINT32_MIN 0 //0x00000000
00095 #define UINT32_MAX UINT_MAX //0xffffffff
00096 #define UINT64_MIN 0 //0x0000000000000000
00097 #define UINT64_MAX ULONG_MAX //0xffffffffffffffff
00098
00099
00100 #define FLOAT32_MIN FLT_MIN
00101 #define FLOAT32_MAX FLT_MAX
00102 #define FLOAT32_MIN_EXP FLT_MIN_EXP
00103 #define FLOAT32_MAX_EXP FLT_MAX_EXP
00104 #define FLOAT32_MIN_10_EXP FLT_MIN_10_EXP
00105 #define FLOAT32_MAX_10_EXP FLT_MAX_10_EXP
00106 #define FLOAT32_DIGIT FLT_DIG
00107 #define FLOAT32_RADIX FLT_RADIX
00108 #define FLOAT32_MIN_FRACTION FLT_EPSILON
00109
00110 #define FLOAT64_MIN DBL_MIN
00111 #define FLOAT64_MAX DBL_MAX
00112 #define FLOAT64_MIN_EXP DBL_MIN_EXP
00113 #define FLOAT64_MAX_EXP DBL_MAX_EXP
00114 #define FLOAT64_MIN_10_EXP DBL_MIN_10_EXP
00115 #define FLOAT64_MAX_10_EXP DBL_MAX_10_EXP
00116 #define FLOAT64_DIGIT DBL_DIG
00117 #define FLOAT64_RADIX DBL_RADIX
00118 #define FLOAT64_MIN_FRACTION DBL_EPSILON
00119
00120
00121 typedef char gnSeqC;
00122 typedef uint64 gnSeqI;
00123
00124 #define GNSEQI_ERROR UINT32_MAX // return value
00125 #define GNSEQI_END UINT32_MAX // argument value
00126 #define GNSEQI_BEGIN UINT64_MIN // argument value
00127 #define GNSEQC_NULL 0
00128 #define GNSEQC_MIN INT8_MIN
00129 #define GNSEQC_MAX INT8_MAX
00130
00131
00132 #define CONTIG_SECTION_SIZE 3
00133 enum gnContigSection{
00134
gnContigHeader = 0,
00135
gnContigAnnotation = 1,
00136
gnContigSequence = 2
00137 };
00138
00139 enum gnNewlineType{
00140
gnNewlineUnix = 0,
00141
gnNewlineWindows = 1,
00142
gnNewlineMac = 2
00143 };
00144
00145 static const uint32 ALL_CONTIGS =
UINT32_MAX;
00146 static const uint32 BUFFER_SIZE = 100000;
00147
00148
00149
#if defined(__GNUG__) || defined(__INTEL_COMPILER) || defined(__APPLE__)
00150
#if( __GNUC__ <= 2 ) || defined(__APPLE__)
00151
00152
int64 abs( int64 a );
00153
00154
#endif
00155
#endif
00156
00157
#ifdef __cplusplus
00158
00162
template<
class T>
00163
class Array{
00164
public:
00168 Array( uint64 bufsize ){
00169 data =
new T[bufsize];
00170 }
00171 ~Array() {
00172
if (data != NULL)
00173
delete[] data;
00174 }
00176 T* data;
00177
private:
00178 Array(
const Array& a );
00179 Array& operator=(
const Array& a );
00180 Array(){};
00181 };
00182
00183
#endif //__cplusplus
00184
00185
#endif
00186