diff options
| author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2022-10-24 21:03:42 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2022-10-24 21:03:42 +0200 | 
| commit | 532d4a24e2013262dfa41fd85c06a9715c99abf7 (patch) | |
| tree | 3b7f4fac1e983ead408c20a2f330b41aa2399ab1 /doc/bitmaps.rst | |
| parent | a1bdcfa3ca8af4ddb69ee57d716aa943cf3fe94a (diff) | |
New upstream version 4.7upstream/4.7
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; +	} | 
