Class FastAggregation


  • public final class FastAggregation
    extends Object
    Fast algorithms to aggregate many bitmaps.
    Author:
    Daniel Lemire
    • Method Detail

      • and

        public static RoaringBitmap and​(Iterator<? extends RoaringBitmap> bitmaps)
        Compute the AND aggregate. In practice, calls {#link naive_and}
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • and

        public static RoaringBitmap and​(RoaringBitmap... bitmaps)
        Compute the AND aggregate. In practice, calls {#link naive_and}
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • horizontal_or

        public static RoaringBitmap horizontal_or​(List<? extends RoaringBitmap> bitmaps)
        Minimizes memory usage while computing the or aggregate on a moderate number of bitmaps. This function runs in linearithmic (O(n log n)) time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
        See Also:
        or(RoaringBitmap...)
      • horizontal_or

        public static RoaringBitmap horizontal_or​(RoaringBitmap... bitmaps)
        Minimizes memory usage while computing the or aggregate on a moderate number of bitmaps. This function runs in linearithmic (O(n log n)) time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
        See Also:
        or(RoaringBitmap...)
      • horizontal_xor

        public static RoaringBitmap horizontal_xor​(RoaringBitmap... bitmaps)
        Minimizes memory usage while computing the xor aggregate on a moderate number of bitmaps. This function runs in linearithmic (O(n log n)) time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
        See Also:
        xor(RoaringBitmap...)
      • naive_and

        public static RoaringBitmap naive_and​(Iterator<? extends RoaringBitmap> bitmaps)
        Compute overall AND between bitmaps two-by-two. This function runs in linear time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • naive_and

        public static RoaringBitmap naive_and​(RoaringBitmap... bitmaps)
        Compute overall AND between bitmaps two-by-two. This function runs in linear time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • naive_or

        public static RoaringBitmap naive_or​(Iterator<? extends RoaringBitmap> bitmaps)
        Compute overall OR between bitmaps two-by-two. This function runs in linear time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • naive_or

        public static RoaringBitmap naive_or​(RoaringBitmap... bitmaps)
        Compute overall OR between bitmaps two-by-two. This function runs in linear time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • naive_xor

        public static RoaringBitmap naive_xor​(Iterator<? extends RoaringBitmap> bitmaps)
        Compute overall XOR between bitmaps two-by-two. This function runs in linear time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • naive_xor

        public static RoaringBitmap naive_xor​(RoaringBitmap... bitmaps)
        Compute overall XOR between bitmaps two-by-two. This function runs in linear time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • or

        public static RoaringBitmap or​(Iterator<? extends RoaringBitmap> bitmaps)
        Compute overall OR between bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • or

        public static RoaringBitmap or​(RoaringBitmap... bitmaps)
        Compute overall OR between bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • priorityqueue_or

        public static RoaringBitmap priorityqueue_or​(Iterator<? extends RoaringBitmap> bitmaps)
        Uses a priority queue to compute the or aggregate. This function runs in linearithmic (O(n log n)) time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
        See Also:
        horizontal_or(RoaringBitmap...)
      • priorityqueue_or

        public static RoaringBitmap priorityqueue_or​(RoaringBitmap... bitmaps)
        Uses a priority queue to compute the or aggregate. This function runs in linearithmic (O(n log n)) time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
        See Also:
        horizontal_or(RoaringBitmap...)
      • priorityqueue_xor

        public static RoaringBitmap priorityqueue_xor​(RoaringBitmap... bitmaps)
        Uses a priority queue to compute the xor aggregate. This function runs in linearithmic (O(n log n)) time with respect to the number of bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
        See Also:
        horizontal_xor(RoaringBitmap...)
      • xor

        public static RoaringBitmap xor​(Iterator<? extends RoaringBitmap> bitmaps)
        Compute overall XOR between bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap
      • xor

        public static RoaringBitmap xor​(RoaringBitmap... bitmaps)
        Compute overall XOR between bitmaps.
        Parameters:
        bitmaps - input bitmaps
        Returns:
        aggregated bitmap