Skip to content

Efficient TypeScript bitmap indexing library for set operations and bitmasking.

Notifications You must be signed in to change notification settings

yazmeyaa/bitmap-index

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitmap-Index Library

This TypeScript library provides a bitmap implementation (Bitmap) that allows efficient manipulation of a bitmap data structure, useful for various indexing and set operations.

Features

  • 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.

Installation

You can install the library via npm:

npm install bitmap-index

Usage Example

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...

API Documentation

  • 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

Note

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.

About

Efficient TypeScript bitmap indexing library for set operations and bitmasking.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published