include/gn/gnDefs.h

Go to the documentation of this file.
00001 00002 // File: gn/gnDefs.h 00003 // Purpose: Defines common constants in libGenome. 00004 // Description: Defines, consts, typedef etc for libGenome 00005 // Rev: A 00006 // Author: Aaron Darling 00007 // Modified by: 00008 // Copyright: (c) Aaron Darling 00009 // Licenses: See COPYING file for details 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 // bool 00023 typedef unsigned char boolean; 00024 typedef unsigned char int1; 00025 // signed 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 // unsigned 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 // float 00041 typedef float float32; 00042 typedef double float64; 00043 00044 // defines 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 // limits.h 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 // float.h 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 // Sequence Types 00121 typedef char gnSeqC; // Sequence Character 00122 typedef uint64 gnSeqI; // Sequence Index 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 // gcc version 2 doesn't have abs() for 64 bit ints 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 //_gnDefs_h_

Generated on Mon Feb 14 19:28:17 2005 for libGenome by doxygen 1.3.8