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: |

Telegram hopes to raise $1bn with a convertible bond private placement

The super secure UAE-based Telegram messenger service, developed by Russian-born software icon Pavel Durov, is looking to raise $1bn through a bond placement to a limited number of investors from Russia, Europe, Asia and the Middle East, the Kommersant daily reported citing unnamed sources on February 18, 2021.The issue reportedly comprises exchange bonds that could be converted into equity in the messaging service that is currently 100% owned by Durov and his brother Nikolai.Kommersant reports that the price of the conversion would be at a 10% discount to a potential IPO should it happen within five years.The minimum bond placement is said to be set at $50mn, but could be lowered to $10mn. Five-year bonds could carry an annual coupon of 7-8%.

The seemingly negative pandemic effects and resource/product shortages are encouraging and allowing organizations to innovate and change.The news of cash-rich organizations getting ready for the post-Covid growth economy is a sign of more than capital spending plans. Cash provides a cushion for risk-taking and a tool for growth.

telegram from vn


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