00001
00016 #include <GKlib.h>
00017
00018
00019
00020
00022
00023 void gk_csorti(size_t n, char *base)
00024 {
00025 #define char_lt(a, b) ((*a) < (*b))
00026 GK_MKQSORT(char, base, n, char_lt);
00027 #undef char_lt
00028 }
00029
00030
00031
00033
00034 void gk_csortd(size_t n, char *base)
00035 {
00036 #define char_gt(a, b) ((*a) > (*b))
00037 GK_MKQSORT(char, base, n, char_gt);
00038 #undef char_gt
00039 }
00040
00041
00042
00044
00045 void gk_isorti(size_t n, int *base)
00046 {
00047 #define int_lt(a, b) ((*a) < (*b))
00048 GK_MKQSORT(int, base, n, int_lt);
00049 #undef int_lt
00050 }
00051
00052
00053
00055
00056 void gk_isortd(size_t n, int *base)
00057 {
00058 #define int_gt(a, b) ((*a) > (*b))
00059 GK_MKQSORT(int, base, n, int_gt);
00060 #undef int_gt
00061 }
00062
00063
00064
00066
00067 void gk_fsorti(size_t n, float *base)
00068 {
00069 #define float_lt(a, b) ((*a) < (*b))
00070 GK_MKQSORT(float, base, n, float_lt);
00071 #undef float_lt
00072 }
00073
00074
00075
00077
00078 void gk_fsortd(size_t n, float *base)
00079 {
00080 #define float_gt(a, b) ((*a) > (*b))
00081 GK_MKQSORT(float, base, n, float_gt);
00082 #undef float_gt
00083 }
00084
00085
00086
00088
00089 void gk_dsorti(size_t n, double *base)
00090 {
00091 #define double_lt(a, b) ((*a) < (*b))
00092 GK_MKQSORT(double, base, n, double_lt);
00093 #undef double_lt
00094 }
00095
00096
00097
00099
00100 void gk_dsortd(size_t n, double *base)
00101 {
00102 #define double_gt(a, b) ((*a) > (*b))
00103 GK_MKQSORT(double, base, n, double_gt);
00104 #undef double_gt
00105 }
00106
00107
00108
00110
00111 void gk_idxsorti(size_t n, gk_idx_t *base)
00112 {
00113 #define idx_lt(a, b) ((*a) < (*b))
00114 GK_MKQSORT(gk_idx_t, base, n, idx_lt);
00115 #undef idx_lt
00116 }
00117
00118
00119
00121
00122 void gk_idxsortd(size_t n, gk_idx_t *base)
00123 {
00124 #define idx_gt(a, b) ((*a) > (*b))
00125 GK_MKQSORT(gk_idx_t, base, n, idx_gt);
00126 #undef idx_gt
00127 }
00128
00129
00130
00131
00132
00134
00135 void gk_ckvsorti(size_t n, gk_ckv_t *base)
00136 {
00137 #define ckey_lt(a, b) ((a)->key < (b)->key)
00138 GK_MKQSORT(gk_ckv_t, base, n, ckey_lt);
00139 #undef ckey_lt
00140 }
00141
00142
00143
00145
00146 void gk_ckvsortd(size_t n, gk_ckv_t *base)
00147 {
00148 #define ckey_gt(a, b) ((a)->key > (b)->key)
00149 GK_MKQSORT(gk_ckv_t, base, n, ckey_gt);
00150 #undef ckey_gt
00151 }
00152
00153
00154
00156
00157 void gk_ikvsorti(size_t n, gk_ikv_t *base)
00158 {
00159 #define ikey_lt(a, b) ((a)->key < (b)->key)
00160 GK_MKQSORT(gk_ikv_t, base, n, ikey_lt);
00161 #undef ikey_lt
00162 }
00163
00164
00165
00167
00168 void gk_ikvsortd(size_t n, gk_ikv_t *base)
00169 {
00170 #define ikey_gt(a, b) ((a)->key > (b)->key)
00171 GK_MKQSORT(gk_ikv_t, base, n, ikey_gt);
00172 #undef ikey_gt
00173 }
00174
00175
00176
00178
00179 void gk_i32kvsorti(size_t n, gk_i32kv_t *base)
00180 {
00181 #define ikey_lt(a, b) ((a)->key < (b)->key)
00182 GK_MKQSORT(gk_i32kv_t, base, n, ikey_lt);
00183 #undef ikey_lt
00184 }
00185
00186
00187
00189
00190 void gk_i32kvsortd(size_t n, gk_i32kv_t *base)
00191 {
00192 #define ikey_gt(a, b) ((a)->key > (b)->key)
00193 GK_MKQSORT(gk_i32kv_t, base, n, ikey_gt);
00194 #undef ikey_gt
00195 }
00196
00197
00198
00200
00201 void gk_i64kvsorti(size_t n, gk_i64kv_t *base)
00202 {
00203 #define ikey_lt(a, b) ((a)->key < (b)->key)
00204 GK_MKQSORT(gk_i64kv_t, base, n, ikey_lt);
00205 #undef ikey_lt
00206 }
00207
00208
00209
00211
00212 void gk_i64kvsortd(size_t n, gk_i64kv_t *base)
00213 {
00214 #define ikey_gt(a, b) ((a)->key > (b)->key)
00215 GK_MKQSORT(gk_i64kv_t, base, n, ikey_gt);
00216 #undef ikey_gt
00217 }
00218
00219
00220
00222
00223 void gk_zkvsorti(size_t n, gk_zkv_t *base)
00224 {
00225 #define zkey_lt(a, b) ((a)->key < (b)->key)
00226 GK_MKQSORT(gk_zkv_t, base, n, zkey_lt);
00227 #undef zkey_lt
00228 }
00229
00230
00231
00233
00234 void gk_zkvsortd(size_t n, gk_zkv_t *base)
00235 {
00236 #define zkey_gt(a, b) ((a)->key > (b)->key)
00237 GK_MKQSORT(gk_zkv_t, base, n, zkey_gt);
00238 #undef zkey_gt
00239 }
00240
00241
00242
00244
00245 void gk_fkvsorti(size_t n, gk_fkv_t *base)
00246 {
00247 #define fkey_lt(a, b) ((a)->key < (b)->key)
00248 GK_MKQSORT(gk_fkv_t, base, n, fkey_lt);
00249 #undef fkey_lt
00250 }
00251
00252
00253
00255
00256 void gk_fkvsortd(size_t n, gk_fkv_t *base)
00257 {
00258 #define fkey_gt(a, b) ((a)->key > (b)->key)
00259 GK_MKQSORT(gk_fkv_t, base, n, fkey_gt);
00260 #undef fkey_gt
00261 }
00262
00263
00264
00266
00267 void gk_dkvsorti(size_t n, gk_dkv_t *base)
00268 {
00269 #define dkey_lt(a, b) ((a)->key < (b)->key)
00270 GK_MKQSORT(gk_dkv_t, base, n, dkey_lt);
00271 #undef dkey_lt
00272 }
00273
00274
00275
00277
00278 void gk_dkvsortd(size_t n, gk_dkv_t *base)
00279 {
00280 #define dkey_gt(a, b) ((a)->key > (b)->key)
00281 GK_MKQSORT(gk_dkv_t, base, n, dkey_gt);
00282 #undef dkey_gt
00283 }
00284
00285
00286
00288
00289 void gk_skvsorti(size_t n, gk_skv_t *base)
00290 {
00291 #define skey_lt(a, b) (strcmp((a)->key, (b)->key) < 0)
00292 GK_MKQSORT(gk_skv_t, base, n, skey_lt);
00293 #undef skey_lt
00294 }
00295
00296
00297
00299
00300 void gk_skvsortd(size_t n, gk_skv_t *base)
00301 {
00302 #define skey_gt(a, b) (strcmp((a)->key, (b)->key) > 0)
00303 GK_MKQSORT(gk_skv_t, base, n, skey_gt);
00304 #undef skey_gt
00305 }
00306
00307
00308
00310
00311 void gk_idxkvsorti(size_t n, gk_idxkv_t *base)
00312 {
00313 #define idxkey_lt(a, b) ((a)->key < (b)->key)
00314 GK_MKQSORT(gk_idxkv_t, base, n, idxkey_lt);
00315 #undef idxkey_lt
00316 }
00317
00318
00319
00321
00322 void gk_idxkvsortd(size_t n, gk_idxkv_t *base)
00323 {
00324 #define idxkey_gt(a, b) ((a)->key > (b)->key)
00325 GK_MKQSORT(gk_idxkv_t, base, n, idxkey_gt);
00326 #undef idxkey_gt
00327 }