diff options
Diffstat (limited to 'include/__bsearch.h')
-rw-r--r-- | include/__bsearch.h | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/include/__bsearch.h b/include/__bsearch.h deleted file mode 100644 index 6abcff6..0000000 --- a/include/__bsearch.h +++ /dev/null @@ -1,60 +0,0 @@ -#include <stddef.h> - -#include "macros.h" - -#define __MLIB_DEFINE_BSEARCH(TYPE, TABLE, DEFAULT) \ - static TYPE mlib_lookup(rune ch) \ - { \ - ptrdiff_t i, lo, hi; \ - lo = 0; \ - hi = lengthof(TABLE) - 1; \ - i = (lo + hi) / 2; \ - do { \ - if (ch < TABLE[i].lo) \ - hi = i - 1; \ - else if (ch > TABLE[i].hi) \ - lo = i + 1; \ - else \ - return TABLE[i].val; \ - i = (lo + hi) / 2; \ - } while (lo <= hi); \ - return DEFAULT; \ - } - -#define __MLIB_DEFINE_BSEARCH_CONTAINS(TABLE) \ - static bool mlib_lookup_contains(rune ch) \ - { \ - ptrdiff_t i, lo, hi; \ - lo = 0; \ - hi = lengthof(TABLE) - 1; \ - i = (lo + hi) / 2; \ - do { \ - if (ch < TABLE[i].lo) \ - hi = i - 1; \ - else if (ch > TABLE[i].hi) \ - lo = i + 1; \ - else \ - return true; \ - i = (lo + hi) / 2; \ - } while (lo <= hi); \ - return false; \ - } - -#define __MLIB_DEFINE_BSEARCH_KV(TYPE, TABLE, DEFAULT) \ - static TYPE mlib_lookup_kv(rune ch) \ - { \ - ptrdiff_t i, lo, hi; \ - lo = 0; \ - hi = lengthof(TABLE) - 1; \ - i = (lo + hi) / 2; \ - do { \ - if (ch < TABLE[i].k) \ - hi = i - 1; \ - else if (ch > TABLE[i].k) \ - lo = i + 1; \ - else \ - return TABLE[i].v; \ - i = (lo + hi) / 2; \ - } while (lo <= hi); \ - return DEFAULT; \ - } |