Changeset: a13846692aaa for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a13846692aaa
Modified Files:
        gdk/gdk_strimps.c
Branch: string_imprints
Log Message:

Some utility functions

- lookup the index of a pair in the header
- construct a bitstring for a given string encoding the presence or
  absence of the pairs in the header

These should probably be inlined.


diffs (68 lines):

diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -227,33 +227,43 @@ create_header(BAT *b)
 }
 
 
-/* static uint8_t */
-/* lookup_index(StrimpHeader *h, uint16_t n) */
-/* { */
-/*     size_t i; */
-/*     for(i = 0; i < STRIMP_SIZE; i++) */
-/*             if(h->bytepairs[i] == n) */
-/*                     return i; */
+/* Given a strimp h and a DataPair p, return the index i for which
+ *
+ * h[i] == p
+ *
+ * Returns 0 if p is not in h.
+ *
+ * TODO: Should this be inlined somehow? (probably yes)
+ */
+static uint8_t
+lookup_index(StrimpHeader *h, DataPair n)
+{
+       size_t i;
+       for(i = 0; i < STRIMP_HEADER_SIZE; i++)
+               if(h->bytepairs[i] == n)
+                       return i;
 
-/*     return 0; */
-/* } */
+       return 0;
+}
 
 
 /* Given a strimp header and a string compute the bitstring of which
  * digrams(byte pairs) are present in the string. The strimp header is a
  * map from digram(byte pair) to index in the strimp.
+ *
+ * This should probably be inlined.
  */
-/* static uint64_t */
-/* GDKstrimp_make_bitstring(str s, StrimpHeader *h) */
-/* { */
-/*     uint64_t ret = 0; */
-/*     uint8_t pair_idx; */
-/*     char *it; */
+static uint64_t
+GDKstrimp_make_bitstring(const str s, StrimpHeader *h)
+{
+       uint64_t ret = 0;
+       uint8_t pair_idx;
+       char *it;
 
-/*     for(it = s; *it != 0 && *(it+1) != 0; it++) { */
-/*             pair_idx = lookup_index(h, pairToIndex(*it, *(it+1))); */
-/*             ret |= 0x1 << pair_idx; */
-/*     } */
+       for(it = s; *it != 0 && *(it+1) != 0; it++) {
+               pair_idx = lookup_index(h, pairToIndex(*it, *(it+1)));
+               ret |= 0x1 << pair_idx;
+       }
 
-/*     return ret; */
-/* } */
+       return ret;
+}
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to