diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2022-10-24 21:04:00 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2022-10-24 21:04:00 +0200 |
commit | 3422d8db505630a70bc89a4eee7db927b8e5ec2f (patch) | |
tree | f0c6e1ba7db9991f2bd38c9169f9921bfe5e61d8 /doc/bitmaps.rst | |
parent | df5167db909a88fb8e16dd20b37442495a6ac059 (diff) | |
parent | aab49e5a013c53ae812a143fe41add74e0677a61 (diff) |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'doc/bitmaps.rst')
-rw-r--r-- | doc/bitmaps.rst | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/doc/bitmaps.rst b/doc/bitmaps.rst new file mode 100644 index 0000000..18a992d --- /dev/null +++ b/doc/bitmaps.rst @@ -0,0 +1,49 @@ +======= +Bitmaps +======= + +.. code-block:: c + + #include <libHX/misc.h> + + size_t HXbitmap_size(type array, unsigned int bits); + void HXbitmap_set(type *bmap, unsigned int bit); + void HXbitmap_clear(type *bmap, unsigned int bit); + bool HXbitmap_test(type *bmap, unsigned int bit); + +All of these four are implemented as macros, so they can be used with any +integer type that is desired to be used. + +``HXbitmap_size`` + Returns the amount of ``type``-based integers that would be needed to + hold an array of the requested amount of bits. + +``HXbitmap_set`` + Sets the specific bit in the bitmap. + +``HXbitmap_clear`` + Clears the specific bit in this bitmap. + +``HXbitmap_test`` + Tests for the specific bit and returns true if it is set, otherwise + false. + + +Example +======= + +.. code-block:: c + + #include <stdlib.h> + #include <string.h> + #include <libHX/misc.h> + + int main(void) + { + unsigned long bitmap[HXbitmap_size(unsigned long, 128)]; + + memset(bitmap, 0, sizeof(bitmap)); + HXbitmap_set(bitmap, 49); + return HXbitmap_get(bitmap, HX_irand(0, 128)) ? + EXIT_SUCCESS : EXIT_FAILURE; + } |