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