src/utils.c

branch
feature/array
changeset 349
05957b1d10a5
parent 314
5d28dc8f0765
     1.1 --- a/src/utils.c	Wed Aug 07 23:23:58 2019 +0200
     1.2 +++ b/src/utils.c	Sat Aug 10 08:44:36 2019 +0200
     1.3 @@ -113,8 +113,108 @@
     1.4  }
     1.5  
     1.6  int ucx_cmp_longint(const void *i1, const void *i2, void *data) {
     1.7 -   int a = *((const long int*) i1);
     1.8 -   int b = *((const long int*) i2);
     1.9 +   long int a = *((const long int*) i1);
    1.10 +   long int b = *((const long int*) i2);
    1.11 +   if (a == b) {
    1.12 +       return 0;
    1.13 +   } else {
    1.14 +       return a < b ? -1 : 1;
    1.15 +   }
    1.16 +}
    1.17 +
    1.18 +int ucx_cmp_longlong(const void *i1, const void *i2, void *data) {
    1.19 +   long long a = *((const long long*) i1);
    1.20 +   long long b = *((const long long*) i2);
    1.21 +   if (a == b) {
    1.22 +       return 0;
    1.23 +   } else {
    1.24 +       return a < b ? -1 : 1;
    1.25 +   }
    1.26 +}
    1.27 +
    1.28 +int ucx_cmp_int16(const void *i1, const void *i2, void *data) {
    1.29 +   int16_t a = *((const int16_t*) i1);
    1.30 +   int16_t b = *((const int16_t*) i2);
    1.31 +   if (a == b) {
    1.32 +       return 0;
    1.33 +   } else {
    1.34 +       return a < b ? -1 : 1;
    1.35 +   }
    1.36 +}
    1.37 +
    1.38 +int ucx_cmp_int32(const void *i1, const void *i2, void *data) {
    1.39 +   int32_t a = *((const int32_t*) i1);
    1.40 +   int32_t b = *((const int32_t*) i2);
    1.41 +   if (a == b) {
    1.42 +       return 0;
    1.43 +   } else {
    1.44 +       return a < b ? -1 : 1;
    1.45 +   }
    1.46 +}
    1.47 +
    1.48 +int ucx_cmp_int64(const void *i1, const void *i2, void *data) {
    1.49 +   int64_t a = *((const int64_t*) i1);
    1.50 +   int64_t b = *((const int64_t*) i2);
    1.51 +   if (a == b) {
    1.52 +       return 0;
    1.53 +   } else {
    1.54 +       return a < b ? -1 : 1;
    1.55 +   }
    1.56 +}
    1.57 +
    1.58 +int ucx_cmp_uint(const void *i1, const void *i2, void *data) {
    1.59 +   unsigned int a = *((const unsigned int*) i1);
    1.60 +   unsigned int b = *((const unsigned int*) i2);
    1.61 +   if (a == b) {
    1.62 +       return 0;
    1.63 +   } else {
    1.64 +       return a < b ? -1 : 1;
    1.65 +   }
    1.66 +}
    1.67 +
    1.68 +int ucx_cmp_ulongint(const void *i1, const void *i2, void *data) {
    1.69 +   unsigned long int a = *((const unsigned long int*) i1);
    1.70 +   unsigned long int b = *((const unsigned long int*) i2);
    1.71 +   if (a == b) {
    1.72 +       return 0;
    1.73 +   } else {
    1.74 +       return a < b ? -1 : 1;
    1.75 +   }
    1.76 +}
    1.77 +
    1.78 +int ucx_cmp_ulonglong(const void *i1, const void *i2, void *data) {
    1.79 +   unsigned long long a = *((const unsigned long long*) i1);
    1.80 +   unsigned long long b = *((const unsigned long long*) i2);
    1.81 +   if (a == b) {
    1.82 +       return 0;
    1.83 +   } else {
    1.84 +       return a < b ? -1 : 1;
    1.85 +   }
    1.86 +}
    1.87 +
    1.88 +int ucx_cmp_uint16(const void *i1, const void *i2, void *data) {
    1.89 +   uint16_t a = *((const uint16_t*) i1);
    1.90 +   uint16_t b = *((const uint16_t*) i2);
    1.91 +   if (a == b) {
    1.92 +       return 0;
    1.93 +   } else {
    1.94 +       return a < b ? -1 : 1;
    1.95 +   }
    1.96 +}
    1.97 +
    1.98 +int ucx_cmp_uint32(const void *i1, const void *i2, void *data) {
    1.99 +   uint32_t a = *((const uint32_t*) i1);
   1.100 +   uint32_t b = *((const uint32_t*) i2);
   1.101 +   if (a == b) {
   1.102 +       return 0;
   1.103 +   } else {
   1.104 +       return a < b ? -1 : 1;
   1.105 +   }
   1.106 +}
   1.107 +
   1.108 +int ucx_cmp_uint64(const void *i1, const void *i2, void *data) {
   1.109 +   uint64_t a = *((const uint64_t*) i1);
   1.110 +   uint64_t b = *((const uint64_t*) i2);
   1.111     if (a == b) {
   1.112         return 0;
   1.113     } else {
   1.114 @@ -134,6 +234,66 @@
   1.115     return a - b;
   1.116  }
   1.117  
   1.118 +intmax_t ucx_dist_longlong(const void *i1, const void *i2, void *data) {
   1.119 +   intmax_t a = *((const long long*) i1);
   1.120 +   intmax_t b = *((const long long*) i2);
   1.121 +   return a - b;
   1.122 +}
   1.123 +
   1.124 +intmax_t ucx_dist_int16(const void *i1, const void *i2, void *data) {
   1.125 +   intmax_t a = *((const int16_t*) i1);
   1.126 +   intmax_t b = *((const int16_t*) i2);
   1.127 +   return a - b;
   1.128 +}
   1.129 +
   1.130 +intmax_t ucx_dist_int32(const void *i1, const void *i2, void *data) {
   1.131 +   intmax_t a = *((const int32_t*) i1);
   1.132 +   intmax_t b = *((const int32_t*) i2);
   1.133 +   return a - b;
   1.134 +}
   1.135 +
   1.136 +intmax_t ucx_dist_int64(const void *i1, const void *i2, void *data) {
   1.137 +   intmax_t a = *((const int64_t*) i1);
   1.138 +   intmax_t b = *((const int64_t*) i2);
   1.139 +   return a - b;
   1.140 +}
   1.141 +
   1.142 +intmax_t ucx_dist_uint(const void *i1, const void *i2, void *data) {
   1.143 +   uintmax_t a = *((const unsigned int*) i1);
   1.144 +   uintmax_t b = *((const unsigned int*) i2);
   1.145 +   return a > b ? (intmax_t)(a - b) : -(intmax_t)(b - a);
   1.146 +}
   1.147 +
   1.148 +intmax_t ucx_dist_ulongint(const void *i1, const void *i2, void *data) {
   1.149 +   uintmax_t a = *((const unsigned long int*) i1);
   1.150 +   uintmax_t b = *((const unsigned long int*) i2);
   1.151 +   return a > b ? (intmax_t)(a - b) : -(intmax_t)(b - a);
   1.152 +}
   1.153 +
   1.154 +intmax_t ucx_dist_ulonglong(const void *i1, const void *i2, void *data) {
   1.155 +   uintmax_t a = *((const unsigned long long*) i1);
   1.156 +   uintmax_t b = *((const unsigned long long*) i2);
   1.157 +   return a > b ? (intmax_t)(a - b) : -(intmax_t)(b - a);
   1.158 +}
   1.159 +
   1.160 +intmax_t ucx_dist_uint16(const void *i1, const void *i2, void *data) {
   1.161 +   uintmax_t a = *((const uint16_t*) i1);
   1.162 +   uintmax_t b = *((const uint16_t*) i2);
   1.163 +   return a > b ? (intmax_t)(a - b) : -(intmax_t)(b - a);
   1.164 +}
   1.165 +
   1.166 +intmax_t ucx_dist_uint32(const void *i1, const void *i2, void *data) {
   1.167 +   uintmax_t a = *((const uint32_t*) i1);
   1.168 +   uintmax_t b = *((const uint32_t*) i2);
   1.169 +   return a > b ? (intmax_t)(a - b) : -(intmax_t)(b - a);
   1.170 +}
   1.171 +
   1.172 +intmax_t ucx_dist_uint64(const void *i1, const void *i2, void *data) {
   1.173 +   uintmax_t a = *((const uint64_t*) i1);
   1.174 +   uintmax_t b = *((const uint64_t*) i2);
   1.175 +   return a > b ? (intmax_t)(a - b) : -(intmax_t)(b - a);
   1.176 +}
   1.177 +
   1.178  int ucx_cmp_float(const void *f1, const void *f2, void *epsilon) {
   1.179     float a = *((const float*) f1);
   1.180     float b = *((const float*) f2);

mercurial