Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
stable_sort.hpp File Reference
#include <algorithm>
#include <cstddef>
#include <iterator>
#include <span>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  pulp
namespace  pulp::state
 SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the bulk, observable state a step sequencer / mod-matrix / pattern engine holds outside its automatable parameter set (e.g.
namespace  pulp::state::stable_sort_detail

Functions

template<typename It, typename Less>
void pulp::state::stable_sort_detail::insertion_sort (It base, std::size_t a, std::size_t b, Less &less)
template<typename It, typename Less>
void pulp::state::stable_sort_detail::sym_merge (It base, std::size_t a, std::size_t m, std::size_t b, Less &less)
template<typename It, typename Less>
void pulp::state::stable_sort_in_place (It first, It last, Less less)
 Sorts [first, last) by less, keeping equal elements in their original order, without allocating.
template<typename It, typename Key, typename Value, typename Count>
bool pulp::state::stable_counting_sort (It first, It last, Key key, std::span< Value > scratch, std::span< Count > counts)
 Stable counting sort of [first, last) on a small non-negative integer key, O(n + counts.size()) and allocation-free, using caller-lent storage (typically sized once at prepare time).