DIRS+=ucw/doc
-UCW_DOCS=basics log fastbuf index config configure install basecode hash docsys conf mempool eltpool mainloop generic growbuf unaligned lists chartype unicode prime binsearch heap binheap compress sort hashtable relnotes trans string time daemon signal
+UCW_DOCS=basics log fastbuf index config configure install basecode hash docsys conf mempool eltpool mainloop generic growbuf unaligned lists chartype unicode prime binsearch heap binheap compress sort hashtable relnotes trans string time daemon signal varint
UCW_INDEX=$(o)/ucw/doc/def_index.html
UCW_DOCS_HTML=$(addprefix $(o)/ucw/doc/,$(addsuffix .html,$(UCW_DOCS)))
- <<growbuf:,Growing buffers>>
- <<chartype:,Single-byte characters>>
- <<unicode:,Multi-byte characters>>
+- <<varint:,Encoding of integers>>
- <<prime:,Prime numbers>>
- <<sort:,Sorting>>
- <<binsearch:,Binary search>>
/***
* The encoding works in the following way:
*
- * First byte Stored values
+ * First byte Stored values
*
- * 0xxxxxxx 7 bits
- * 10xxxxxx +1 byte 14 bits, value shifted by 2^7
- * 110xxxxx +2 bytes 21 bits, value shifted by 2^7+2^14
- * 1110xxxx +3 bytes 28 bits, value shifted by 2^7+2^14+2^21
+ * 0xxxxxxx 7 bits
+ * 10xxxxxx +1 byte 14 bits, value shifted by 2^7
+ * 110xxxxx +2 bytes 21 bits, value shifted by 2^7+2^14
+ * 1110xxxx +3 bytes 28 bits, value shifted by 2^7+2^14+2^21
* ....
- * 11111110 +7 bytes 56 bits, value shifted by 2^7+2^14+2^21+2^28+2^35+2^42
- * 11111111 +8 bytes full 64 bits, value shifted by 2^7+2^14+2^21+2^28+2^35+2^42+2^56
+ * 11111110 +7 bytes 56 bits, value shifted by 2^7+2^14+2^21+2^28+2^35+2^42
+ * 11111111 +8 bytes full 64 bits, value shifted by 2^7+2^14+2^21+2^28+2^35+2^42+2^56
*
* The values are stored in bigendian to allow lexicographic sorting.
* The encoding and algorithms are aimed to be optimised for storing shorter numbers.