CMGDK r49-rc2
|
00001 # i f n d e f H G L _ T Y P E _ F U N C _ I N C L U D E 00002 00003 # d e f i n e H G L _ T Y P E _ F U N C _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / p l a t f o r m / P l a t f o r m . h > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 # d e f i n e H G L _ C O N V E R _ T O _ M E M _ A L I G N ( x ) ( ( ( ( x ) + H G L _ M E M _ A L I G N - 1 ) / H G L _ M E M _ A L I G N ) * H G L _ M E M _ A L I G N ) / / QX[[Plbc[ 00014 00015 00016 00017 # i f n d e f N U L L 00018 00019 # d e f i n e N U L L 0 00020 00021 # e n d i f / / 00022 00023 00024 00025 c o n s t c h a r H e x C h a r [ 2 ] [ 1 6 ] = { { ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F ' } , 00026 00027 { ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' } } ; 00028 00029 00030 00031 # d e f i n e H G L _ E 2 . 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 2 3 5 3 6 00032 00033 # d e f i n e H G L _ L O G 2 E 1 . 4 4 2 6 9 5 0 4 0 8 8 8 9 6 3 4 0 7 3 6 00034 00035 # d e f i n e H G L _ L O G 1 0 E 0 . 4 3 4 2 9 4 4 8 1 9 0 3 2 5 1 8 2 7 6 5 1 00036 00037 # d e f i n e H G L _ L N 2 0 . 6 9 3 1 4 7 1 8 0 5 5 9 9 4 5 3 0 9 4 1 7 00038 00039 # d e f i n e H G L _ L N 1 0 2 . 3 0 2 5 8 5 0 9 2 9 9 4 0 4 5 6 8 4 0 2 00040 00041 # d e f i n e H G L _ P I 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 00042 00043 # d e f i n e H G L _ P I _ 2 1 . 5 7 0 7 9 6 3 2 6 7 9 4 8 9 6 6 1 9 2 3 00044 00045 # d e f i n e H G L _ P I _ 4 0 . 7 8 5 3 9 8 1 6 3 3 9 7 4 4 8 3 0 9 6 1 6 00046 00047 # d e f i n e H G L _ 1 _ P I 0 . 3 1 8 3 0 9 8 8 6 1 8 3 7 9 0 6 7 1 5 3 8 00048 00049 # d e f i n e H G L _ 2 _ P I 0 . 6 3 6 6 1 9 7 7 2 3 6 7 5 8 1 3 4 3 0 7 6 00050 00051 # d e f i n e H G L _ 2 _ S Q R T P I 1 . 1 2 8 3 7 9 1 6 7 0 9 5 5 1 2 5 7 3 9 0 00052 00053 # d e f i n e H G L _ S Q R T 2 1 . 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 0 4 8 8 0 00054 00055 # d e f i n e H G L _ S Q R T 1 _ 2 0 . 7 0 7 1 0 6 7 8 1 1 8 6 5 4 7 5 2 4 4 0 1 00056 00057 00058 00059 i n l i n e i n t p o w e r _ t o _ 2 ( i n t v a l u e ) 00060 00061 { 00062 00063 i n t r e s u l t = 1 ; 00064 00065 00066 00067 w h i l e ( r e s u l t < v a l u e ) 00068 00069 r e s u l t < < = 1 ; 00070 00071 00072 00073 r e t u r n ( r e s u l t ) ; 00074 00075 } 00076 00077 00078 00079 t e m p l a t e < t y p e n a m e T > v o i d h g l _ s w a p ( T & x , T & y ) 00080 00081 { 00082 00083 x ^ = y ; 00084 00085 y = x ^ y ; 00086 00087 x ^ = y ; 00088 00089 } 00090 00091 00092 00093 t e m p l a t e < t y p e n a m e T > T h g l _ a b s ( c o n s t T & v ) { r e t u r n ( v > = 0 ? v : - v ) ; } 00094 00095 00096 00097 t e m p l a t e < t y p e n a m e T > T h g l _ m i n ( c o n s t T & a , c o n s t T & b ) { r e t u r n ( a > b ? b : a ) ; } 00098 00099 t e m p l a t e < t y p e n a m e T > T h g l _ m a x ( c o n s t T & a , c o n s t T & b ) { r e t u r n ( a > b ? a : b ) ; } 00100 00101 00102 00103 t e m p l a t e < t y p e n a m e T > T h g l _ m i n ( c o n s t T * d a t a , i n t c o u n t , T m i n _ v a l u e ) 00104 00105 { 00106 00107 T v a l u e = m i n _ v a l u e ; 00108 00109 00110 00111 f o r ( i n t i = 0 ; i < c o u n t ; i + + ) 00112 00113 { 00114 00115 i f ( * d a t a < v a l u e ) 00116 00117 v a l u e = * d a t a ; 00118 00119 00120 00121 d a t a + + ; 00122 00123 } 00124 00125 00126 00127 r e t u r n ( v a l u e ) ; 00128 00129 } 00130 00131 00132 00133 t e m p l a t e < t y p e n a m e T > T h g l _ m a x ( c o n s t T * d a t a , i n t c o u n t , T m a x _ v a l u e ) 00134 00135 { 00136 00137 T v a l u e = m a x _ v a l u e ; 00138 00139 00140 00141 f o r ( i n t i = 0 ; i < c o u n t ; i + + ) 00142 00143 { 00144 00145 i f ( * d a t a > v a l u e ) 00146 00147 v a l u e = * d a t a ; 00148 00149 00150 00151 d a t a + + ; 00152 00153 } 00154 00155 00156 00157 r e t u r n ( v a l u e ) ; 00158 00159 } 00160 00161 00162 00163 i n l i n e d o u b l e h g l _ a n g 2 r a d ( c o n s t d o u b l e a n g ) 00164 00165 { 00166 00167 r e t u r n a n g * H G L _ P I / 1 8 0 . 0 f ; 00168 00169 } 00170 00171 00172 00173 i n l i n e d o u b l e h g l _ r a d 2 a n g ( c o n s t d o u b l e r a d ) 00174 00175 { 00176 00177 r e t u r n r a d * 1 8 0 . 0 f / H G L _ P I ; 00178 00179 } 00180 00181 00182 00183 t e m p l a t e < t y p e n a m e S , t y p e n a m e D > 00184 00185 i n l i n e v o i d h g l _ c p y ( D * d s t , c o n s t S * s r c , c o n s t s i z e _ t c o u n t ) 00186 00187 { 00188 00189 f o r ( s i z e _ t i = 0 ; i < c o u n t ; i + + ) 00190 00191 * d s t + + = D ( * s r c + + ) ; 00192 00193 } 00194 00195 00196 00197 t e m p l a t e < t y p e n a m e T > 00198 00199 i n l i n e v o i d h g l _ s e t ( T * d a t a , c o n s t T & v a l u e , c o n s t s i z e _ t c o u n t ) 00200 00201 { 00202 00203 f o r ( s i z e _ t i = 0 ; i < c o u n t ; i + + ) 00204 00205 * d a t a + + = v a l u e ; 00206 00207 } 00208 00209 00210 00211 / * * 00212 00213 * kYtW{| 00214 00215 * / 00216 00217 t e m p l a t e < t y p e n a m e T > c l a s s C o m p a r a t o r 00218 00219 { 00220 00221 p u b l i c : 00222 00223 00224 00225 v i r t u a l i n t c o m p a r e ( c o n s t T & o 1 , c o n s t T & o 2 ) / / / < kQpe ͑} 00226 00227 { 00228 00229 r e t u r n ( o 1 - o 2 ) ; 00230 00231 } 00232 00233 } ; / / c l a s s C o m p a r a t o r 00234 00235 } / / n a m e s p a c e h g l 00236 00237 # e n d i f / / H G L _ T Y P E _ F U N C _ I N C L U D E 00238 00239