This TypeScript library provides a bitmap implementation (Bitmap
) that allows efficient manipulation of a bitmap data structure, useful for various indexing and set operations.
- Set Operations: Supports set, remove, contains, and clear operations on the bitmap.
- Logical Operations: Provides AND, AND-NOT, OR, and XOR operations between bitmaps.
- Iteration and Filtering: Includes range iteration and filtering based on user-defined conditions.
- Counting and Extremes: Methods to count set bits (
count
), find the minimum and maximum set bit (min
,max
), as well as the minimum and maximum unset bit (minZero
,maxZero
). - Cloning: Supports cloning of the bitmap instance.
You can install the library via npm:
npm install bitmap-index
import { Bitmap } from 'bitmap-index';
// Create a new Bitmap with a size of 32 bits
const bitmap = new Bitmap(32);
// Set bits
bitmap.set(2);
bitmap.set(5);
bitmap.set(10);
// Check if a bit is set
console.log(bitmap.contains(5)); // true
console.log(bitmap.contains(3)); // false
// Perform logical operations with another bitmap
const otherBitmap = new Bitmap(32);
otherBitmap.set(5);
otherBitmap.set(10);
const andResult = bitmap.and(otherBitmap); // Bitmap with bits [5, 10]
const orResult = bitmap.or(otherBitmap); // Bitmap with bits [2, 5, 10]
const xorResult = bitmap.xor(otherBitmap); // Bitmap with bits [2]
// Iterate over set bits within a range
bitmap.range((x) => {
console.log(`Bit ${x} is set`);
return true; // Continue iterating
});
// Filter based on a condition
bitmap.filter((x) => x % 2 === 0); // Remove odd-numbered bits
// Count the number of set bits
console.log(bitmap.count()); // 1
// Find the minimum and maximum set bits
console.log(bitmap.min()); // 2
console.log(bitmap.max()); // 10
// Clear all bits
bitmap.clear();
// Clone the bitmap
const clonedBitmap = bitmap.clone();
// Further operations can be performed on clonedBitmap...
- Bitmap Class
- Constructor:
new Bitmap(size: number = 32)
- Set Operations:
set(x: number)
,remove(x: number)
,contains(x: number)
,clear()
- Logical Operations:
and(bitmap: Bitmap)
,andNot(bitmap: Bitmap)
,or(bitmap: Bitmap)
,xor(bitmap: Bitmap)
- Iteration and Filtering:
range(fn: (x: number) => boolean)
,filter(fn: (x: number) => boolean)
- Count and Extremes:
count()
,min()
,max()
,minZero()
,maxZero()
- Cloning:
clone(): Bitmap
- Constructor:
This library is designed for bitmap indexing operations and is not related to image processing. For more information on bitmap indexing, please refer to Bitmap Index Wiki.
Feel free to contribute, report issues, or suggest improvements on GitHub.