Releases: izvolov/burst
Releases · izvolov/burst
v3.1.1
Улучшения
- Добавлен специальный cmake-модуль для doctest. Теперь doctest скачается автоматически, если его нет в системе.
Прочее
- Декомпозиция в поразрядной сортировке;
- Добавлен пропущенный заголовок;
- Современные сборки макоси добавлены в CI;
- Интерфейс инструментов для замеров стал чуть дружелюбнее.
v3.1.0
Новое
- Параллельные версии поразрядной сортировки и сортировки подсчётом;
variant_iterator
. Итератор, который может принимать значения одного из нескольких итераторов.burst::shaped_array_view
, многомерное представление одномерного массива. То же, чтоboost::multi_array_view
, но легковесное и удобное для использования людьми;- Алгоритм
partial_sum_max
; - Метафункция
one_of_equal
.
Изменения
- Оптимизации поразрядной сортировки, улучшающие свойство естественности. Теперь упорядоченные последовательности не сортируются, а пустые разряды (одинаковые для всех чисел) не учитываются при сортировке;
- Оптимизация механизма ленивых вычислений над диапазонами в случае произвольного набора исходных диапазонов. Переход на
variant_iterator
; - Возможность более точечного включения конкретных алгоритмов целочисленных сортировок. Они разбиты по файлам, но старые заголовки остались: они просто ссылаются на новые.
Прочее
-
Улучшения в замерах
- Возможность замерять разные статистики в целочисленных сортировках;
- Возможность замерять отдельные алгоритмы сортировок;
- Возможность генерировать отсортированные последовательности по частям;
- Утилита
display
для просмотра сгенерированных последовательностей; - Общие улучшения в работе с Питоном.
-
Улучшения в песочнице
- Пример и скрипт загрузки песочницы живут отдельно;
- Пример компилируется и исполняется перед заливкой в песочницу.
-
Библиотека адаптирована для совместимости с C++20;
-
Усилены требования: теперь нужен GCC 7.3 или Clang 8, а также Boost 1.66;
-
Косметические изменения кода.
v3.0.0
Несовместимые изменения
burst::take_n
берёт не ровноn
элементов, а не болееn
элементов. Старое поведение реализовано в адаптореburst::take_exactly
.
Новое
burst::take_exactly
. Адаптор для откусывания ровноn
элементов диапазона;burst::take_at_most
. Синонимburst::take_n
. Адаптор для откусывание не болееn
элементов диапазона;- Адапторы для создания диапазонов на основе семейства функций
burst::make_<container>
:burst::to_vector
burst::to_deque
burst::to_list
burst::to_forward_list
burst::to_set
Изменения
- Итератор слияния больше не требует однонаправленности от сливаемых диапазонов, им достаточно быть однопроходными.
Прочее
- Небольшие улучшения производительности при конструировании контейнеров (семейство
burst::make_<container>
); - Улучшение совместимости с новыми стандартами.
v2.0.0
Новое
-
Упрощённый интерфейс (через
std::tie
) для ленивых операций с множествами; -
Метафункции:
- are_same
- minimum_category
- range_category
- range_iterator
- range_reference
- range_value
Изменения
-
Метафункции для итераторов сменили место жительства на
burst/type_traits
:- iterator_category
- iterator_difference
- iterator_pointer
- iterator_reference
- iterator_value
v1.1.0
Новое
- Система тестирования
Boost.Test
заменена наdoctest
.
Улучшения
- Чуть больше документации;
- Чуть более осмысленные проверки в некоторых тестах.
Исправления
- k-местное дерево поиска корректно конструируется из упорядоченного, но содержащего повторяющиеся элементы диапазона.