From 19621b67f7f23518df1c27d50c4d52dc99f6f65c Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Tue, 7 May 2024 23:07:38 +0200 Subject: Use a 2-stage lookup for u8wnext() and u8wcnt() --- include/_bsearch.h | 60 ------------------------------------------------------ 1 file changed, 60 deletions(-) delete mode 100644 include/_bsearch.h (limited to 'include/_bsearch.h') diff --git a/include/_bsearch.h b/include/_bsearch.h deleted file mode 100644 index ce8f118..0000000 --- a/include/_bsearch.h +++ /dev/null @@ -1,60 +0,0 @@ -#include - -#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; \ - } -- cgit v1.2.3