Class FastAggregation

java.lang.Object
com.googlecode.javaewah.FastAggregation

public final class FastAggregation extends Object
Fast algorithms to aggregate many bitmaps. These algorithms are just given as reference. They may not be faster than the corresponding methods in the EWAHCompressedBitmap class.
Author:
Daniel Lemire
  • Method Details

    • bufferedand

      public static EWAHCompressedBitmap bufferedand(int bufSize, EWAHCompressedBitmap... bitmaps)
      Compute the and aggregate using a temporary uncompressed bitmap. This function does not seek to match the "sizeinbits" attributes of the input bitmaps.
      Parameters:
      bitmaps - the source bitmaps
      bufSize - buffer size used during the computation in 64-bit words (per input bitmap)
      Returns:
      the or aggregate.
    • bufferedandWithContainer

      public static void bufferedandWithContainer(BitmapStorage container, int bufSize, EWAHCompressedBitmap... bitmaps)
      Compute the and aggregate using a temporary uncompressed bitmap. This function does not seek to match the "sizeinbits" attributes of the input bitmaps.
      Parameters:
      container - where the aggregate is written
      bufSize - buffer size used during the computation in 64-bit words (per input bitmap)
      bitmaps - the source bitmaps
    • bufferedor

      public static EWAHCompressedBitmap bufferedor(int bufSize, EWAHCompressedBitmap... bitmaps)
      Compute the or aggregate using a temporary uncompressed bitmap.
      Parameters:
      bitmaps - the source bitmaps
      bufSize - buffer size used during the computation in 64-bit words
      Returns:
      the or aggregate.
    • bufferedorWithContainer

      public static void bufferedorWithContainer(BitmapStorage container, int bufSize, EWAHCompressedBitmap... bitmaps)
      Compute the or aggregate using a temporary uncompressed bitmap.
      Parameters:
      container - where the aggregate is written
      bufSize - buffer size used during the computation in 64-bit words
      bitmaps - the source bitmaps
    • bufferedxor

      public static EWAHCompressedBitmap bufferedxor(int bufSize, EWAHCompressedBitmap... bitmaps)
      Compute the xor aggregate using a temporary uncompressed bitmap.
      Parameters:
      bitmaps - the source bitmaps
      bufSize - buffer size used during the computation in 64-bit words
      Returns:
      the xor aggregate.
    • bufferedxorWithContainer

      public static void bufferedxorWithContainer(BitmapStorage container, int bufSize, EWAHCompressedBitmap... bitmaps)
      Compute the xor aggregate using a temporary uncompressed bitmap.
      Parameters:
      container - where the aggregate is written
      bufSize - buffer size used during the computation in 64-bit words
      bitmaps - the source bitmaps
    • or

      public static <T extends LogicalElement> T or(T... bitmaps)
      Uses a priority queue to compute the or aggregate. This algorithm runs in linearithmic time (O(n log n)) with respect to the number of bitmaps.
      Type Parameters:
      T - a class extending LogicalElement (like a compressed bitmap)
      Parameters:
      bitmaps - bitmaps to be aggregated
      Returns:
      the or aggregate
    • orToContainer

      public static void orToContainer(BitmapStorage container, EWAHCompressedBitmap... bitmaps)
      Uses a priority queue to compute the or aggregate. The content of the container is overwritten. This algorithm runs in linearithmic time (O(n log n)) with respect to the number of bitmaps.
      Parameters:
      container - where we write the result
      bitmaps - to be aggregated
    • or

      public static EWAHCompressedBitmap or(EWAHCompressedBitmap... bitmaps)
      Simple algorithm that computes the OR aggregate.
      Parameters:
      bitmaps - input bitmaps
      Returns:
      new bitmap containing the aggregate
    • xor

      public static EWAHCompressedBitmap xor(EWAHCompressedBitmap... bitmaps)
      Simple algorithm that computes the XOR aggregate.
      Parameters:
      bitmaps - input bitmaps
      Returns:
      new bitmap containing the aggregate
    • or

      public static EWAHCompressedBitmap or(Iterator<EWAHCompressedBitmap> bitmaps)
      Simple algorithm that computes the OR aggregate.
      Parameters:
      bitmaps - input bitmaps
      Returns:
      new bitmap containing the aggregate
    • xor

      public static EWAHCompressedBitmap xor(Iterator<EWAHCompressedBitmap> bitmaps)
      Simple algorithm that computes the XOR aggregate.
      Parameters:
      bitmaps - input bitmaps
      Returns:
      new bitmap containing the aggregate
    • xor

      public static <T extends LogicalElement> T xor(T... bitmaps)
      Uses a priority queue to compute the xor aggregate. This algorithm runs in linearithmic time (O(n log n)) with respect to the number of bitmaps.
      Type Parameters:
      T - a class extending LogicalElement (like a compressed bitmap)
      Parameters:
      bitmaps - bitmaps to be aggregated
      Returns:
      the xor aggregate
    • xorToContainer

      public static void xorToContainer(BitmapStorage container, EWAHCompressedBitmap... bitmaps)
      Uses a priority queue to compute the xor aggregate. The content of the container is overwritten. This algorithm runs in linearithmic time (O(n log n)) with respect to the number of bitmaps.
      Parameters:
      container - where we write the result
      bitmaps - to be aggregated