Битовые функции
Битовые карты могут быть созданы двумя способами. Первый способ — это конструкция с помощью функции агрегации 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
Проверяет, содержит ли битовая карта элемент.
Аргументы
bitmap
– Объект битовой карты.needle
– Искомое значение бита. UInt32.
Возвращаемые значения
Пример
Результат:
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, если битовая карта пуста (UINT64_MAX, если тип >= 8 бит).
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapMax
Вычисляет наибольший установленный бит в битовой карте или 0, если битовая карта пуста.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapTransform
Заменяет не более N бит в битовой карте. Старое и новое значение i-го замененного бита задаются from_array[i]
и to_array[i]
.
Результат зависит от порядка элементов в массивах from_array
и to_array
.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.from_array
– Массив UInt32. Для idx в диапазоне [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
– Объект битовой карты.
Пример
Результат: