Перейти к основному содержимому
Перейти к основному содержимому

Функции битмапа

Битмапы могут быть созданы двумя способами. Первый способ - это использование агрегатной функции groupBitmap с -State, другой способ - создать битмап из объекта массива.

bitmapBuild

Создает битмап из массива беззнаковых целых чисел.

Синтаксис

Аргументы

  • array – массив беззнаковых целых чисел.

Пример

bitmapToArray

Преобразует битмап в массив целых чисел.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapSubsetInRange

Возвращает подмножество битмапа с битами в пределах заданного интервала значений.

Синтаксис

Аргументы

  • bitmapобъект битмапа.
  • range_start – начало диапазона (включительно). UInt32.
  • range_end – конец диапазона (исключительно). UInt32.

Пример

Результат:

bitmapSubsetLimit

Возвращает подмножество битмапа с наименьшим значением бита range_start и не более cardinality_limit элементов.

Синтаксис

Аргументы

  • bitmapобъект битмапа.
  • range_start – начало диапазона (включительно). UInt32.
  • cardinality_limit – максимальная кардинальность подмножества. UInt32.

Пример

Результат:

subBitmap

Возвращает подмножество битмапа, начиная с позиции offset. Максимальная кардинальность возвращенного битмапа составляет cardinality_limit.

Синтаксис

Аргументы

  • bitmap – битмап. объект битмапа.
  • offset – позиция первого элемента подмножества. UInt32.
  • cardinality_limit – максимальное количество элементов в подмножестве. UInt32.

Пример

Результат:

bitmapContains

Проверяет, содержит ли битмап элемент.

Аргументы

Возвращаемые значения

  • 0 — Если bitmap не содержит needle. UInt8.
  • 1 — Если bitmap содержит needle. UInt8.

Пример

Результат:

bitmapHasAny

Проверяет, пересекаются ли два битмапа.

Если bitmap2 содержит ровно один элемент, рассмотрите возможность использования bitmapContains вместо этого, так как это работает более эффективно.

Синтаксис

Аргументы

  • bitmap1 – объект битмапа 1.
  • bitmap2 – объект битмапа 2.

Возвращаемые значения

  • 1, если bitmap1 и bitmap2 имеют хотя бы один общий элемент.
  • 0, в противном случае.

Пример

Результат:

bitmapHasAll

Возвращает 1, если первый битмап содержит все элементы второго битмапа, иначе 0. Если второй битмап пуст, возвращает 1.

См. также hasAll(array, array).

Синтаксис

Аргументы

  • bitmap1 – объект битмапа 1.
  • bitmap2 – объект битмапа 2.

Пример

Результат:

bitmapCardinality

Возвращает кардинальность битмапа.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapMin

Вычисляет наименьший установленный бит в битмапе, или UINT32_MAX, если битмап пуст.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapMax

Вычисляет наибольший установленный бит в битмапе, или 0, если битмап пуст.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapTransform

Заменяет не более N бит в битмапе. Старое и новое значение i-го замененного бита задаются from_array[i] и to_array[i].

Результат зависит от порядка массивов from_array и to_array.

Синтаксис

Аргументы

  • bitmap – объект битмапа.
  • from_array – массив UInt32. Для индекса в диапазоне [0, from_array.size()), если битмап содержит from_array[idx], затем замените его на to_array[idx].
  • to_array – массив UInt32 такого же размера, как from_array.

Пример

Результат:

bitmapAnd

Вычисляет логическое и двух битмапов.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapOr

Вычисляет логическое или двух битмапов.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapXor

Выполняет операцию XOR для двух битмапов.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapAndnot

Вычисляет логическое и двух битмапов и негативирует результат.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapAndCardinality

Возвращает кардинальность логического и двух битмапов.

Синтаксис

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapOrCardinality

Возвращает кардинальность логического или двух битмапов.

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapXorCardinality

Возвращает кардинальность XOR двух битмапов.

Аргументы

  • bitmap – объект битмапа.

Пример

Результат:

bitmapAndnotCardinality

Возвращает кардинальность операции AND-NOT двух битмапов.

Аргументы

  • bitmap – объект битмапа.

Пример

Результат: