Битовые функции
Битовые карты могут быть созданы двумя способами. Первый способ — это конструкция с помощью функции агрегации 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– Объект битовой карты.
Пример
Результат: