GOLANG_LIB Telegram 481
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



tgoop.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:
tgoop.com/golang_lib/481

View MORE
Open in Telegram


Telegram News

Date: |

The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.” In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. Polls ‘Ban’ on Telegram
from us


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