Telegram Group & Telegram Channel
SIMD Binary Search Tree

Этот проект представляет собой бинарное дерево поиска, реализованное с использованием SIMD-инструкций (SSE/AVX/AVX512).

Обычно бинарный поиск требует log₂(n) сравнений. Однако с SIMD можно сравнивать сразу несколько элементов за один проход, значительно снижая число итераций. Это приближает бинарный поиск к константному времени для малых массивов.

Особенности

* Однопроходный бинарный поиск с SIMD.
* Поддержка SSE, AVX2 и AVX512.
* Дерево хранится как массив (без указателей).
* Отложенная перестройка дерева (lazy rebuilding).
* Поддержка поиска и вставки.
* Поддержка произвольных типов через шаблоны C++.
* Совместимость с std::lower_bound / std::upper_bound.

Пример использования


#include "simd_binary_search_tree.hpp"

simd_tree::Tree<int> tree;
tree.insert(10);
tree.insert(5);
tree.insert(15);

auto result = tree.lower_bound(9); // -> 10


Производительность

Проект демонстрирует прирост производительности по сравнению со стандартными алгоритмами STL при поиске в небольших отсортированных массивах, особенно на AVX512.

Структура

* Tree<T> — основной шаблонный класс.
* insert(T) — вставка элемента.
* lower_bound(T) — найти первое значение не меньше заданного.
* upper_bound(T) — найти первое значение больше заданного.

https://clement-jean.github.io/simd_binary_search_tree/

👉 @golang_lib



tg-me.com/golang_lib/481
Create:
Last Update:

SIMD Binary Search Tree

Этот проект представляет собой бинарное дерево поиска, реализованное с использованием SIMD-инструкций (SSE/AVX/AVX512).

Обычно бинарный поиск требует log₂(n) сравнений. Однако с SIMD можно сравнивать сразу несколько элементов за один проход, значительно снижая число итераций. Это приближает бинарный поиск к константному времени для малых массивов.

Особенности

* Однопроходный бинарный поиск с SIMD.
* Поддержка SSE, AVX2 и AVX512.
* Дерево хранится как массив (без указателей).
* Отложенная перестройка дерева (lazy rebuilding).
* Поддержка поиска и вставки.
* Поддержка произвольных типов через шаблоны C++.
* Совместимость с std::lower_bound / std::upper_bound.

Пример использования


#include "simd_binary_search_tree.hpp"

simd_tree::Tree<int> tree;
tree.insert(10);
tree.insert(5);
tree.insert(15);

auto result = tree.lower_bound(9); // -> 10


Производительность

Проект демонстрирует прирост производительности по сравнению со стандартными алгоритмами STL при поиске в небольших отсортированных массивах, особенно на AVX512.

Структура

* Tree<T> — основной шаблонный класс.
* insert(T) — вставка элемента.
* lower_bound(T) — найти первое значение не меньше заданного.
* upper_bound(T) — найти первое значение больше заданного.

https://clement-jean.github.io/simd_binary_search_tree/

👉 @golang_lib

BY Библиотека Go (Golang) разработчика




Share with your friend now:
tg-me.com/golang_lib/481

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Unlimited members in Telegram group now

Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.

What is Secret Chats of Telegram

Secret Chats are one of the service’s additional security features; it allows messages to be sent with client-to-client encryption. This setup means that, unlike regular messages, these secret messages can only be accessed from the device’s that initiated and accepted the chat. Additionally, Telegram notes that secret chats leave no trace on the company’s services and offer a self-destruct timer.

telegram from no


Telegram Библиотека Go (Golang) разработчика
FROM USA