MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
SortingHelper.hpp File Reference
+ Include dependency graph for SortingHelper.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Yantra
 

Enumerations

enum class  MayaFlux::Yantra::SortingAlgorithm : uint8_t {
  MayaFlux::Yantra::STANDARD , MayaFlux::Yantra::STABLE , MayaFlux::Yantra::PARTIAL , MayaFlux::Yantra::NTH_ELEMENT ,
  MayaFlux::Yantra::HEAP , MayaFlux::Yantra::PARALLEL , MayaFlux::Yantra::RADIX , MayaFlux::Yantra::COUNTING ,
  MayaFlux::Yantra::BUCKET , MayaFlux::Yantra::MERGE_EXTERNAL , MayaFlux::Yantra::QUICK_OPTIMIZED , MayaFlux::Yantra::LAZY_STREAMING ,
  MayaFlux::Yantra::PREDICTIVE_ML , MayaFlux::Yantra::EIGEN_OPTIMIZED , MayaFlux::Yantra::GPU_ACCELERATED
}
 Available sorting algorithms for different use cases. More...
 

Functions

void MayaFlux::Yantra::sort_span_inplace (std::span< double > data, SortingDirection direction, SortingAlgorithm algorithm)
 Sort a single span of doubles in-place.
 
std::span< double > MayaFlux::Yantra::sort_span_extract (std::span< const double > data, std::vector< double > &output_storage, SortingDirection direction, SortingAlgorithm algorithm)
 Sort a single span and return copy in output vector.
 
void MayaFlux::Yantra::sort_channels_inplace (std::vector< std::span< double > > &channels, SortingDirection direction, SortingAlgorithm algorithm)
 Sort multiple channels (spans) in-place.
 
std::vector< std::span< double > > MayaFlux::Yantra::sort_channels_extract (const std::vector< std::span< const double > > &channels, std::vector< std::vector< double > > &output_storage, SortingDirection direction, SortingAlgorithm algorithm)
 Sort multiple channels and return copies.
 
std::vector< size_t > MayaFlux::Yantra::generate_span_sort_indices (std::span< double > data, SortingDirection direction)
 Generate sort indices for a single span.
 
std::vector< std::vector< size_t > > MayaFlux::Yantra::generate_channels_sort_indices (const std::vector< std::span< double > > &channels, SortingDirection direction)
 Generate sort indices for multiple channels.
 
template<std::random_access_iterator Iterator, typename Comparator >
void MayaFlux::Yantra::execute_sorting_algorithm (Iterator begin, Iterator end, Comparator comp, SortingAlgorithm algorithm)
 Execute sorting algorithm on iterator range.
 
auto MayaFlux::Yantra::create_double_comparator (SortingDirection direction)
 Create standard direction-based comparator for doubles.
 
template<ComplexData T>
auto MayaFlux::Yantra::create_complex_magnitude_comparator (SortingDirection direction)
 Create magnitude-based comparator for complex numbers.
 
template<typename Container , typename Comparator >
std::vector< size_t > MayaFlux::Yantra::generate_sort_indices (const Container &container, Comparator comp)
 Generate sort indices for any container with custom comparator.
 
template<ComputeData T>
void MayaFlux::Yantra::sort_compute_data_inplace (IO< T > &data, SortingDirection direction, SortingAlgorithm algorithm)
 Universal sort function - handles extraction/conversion internally.
 
template<ComputeData T>
MayaFlux::Yantra::sort_compute_data_extract (const T &data, SortingDirection direction, SortingAlgorithm algorithm)
 Universal sort function - returns sorted copy.
 
template<typename T >
MayaFlux::Yantra::sort_compute_data_extract (const IO< T > &data, SortingDirection direction, SortingAlgorithm algorithm)
 Universal sort function - returns sorted copy.
 
template<ComputeData T>
MayaFlux::Yantra::sort_compute_data (const T &data, SortingDirection direction=SortingDirection::ASCENDING)
 Convenience function with default algorithm.
 
template<ComputeData T>
std::vector< std::vector< size_t > > MayaFlux::Yantra::generate_compute_data_indices (const IO< T > &data, SortingDirection direction)
 Generate sort indices for any ComputeData type.
 
template<typename T >
auto MayaFlux::Yantra::create_multi_key_comparator (const std::vector< SortKey > &keys)
 Creates a multi-key comparator for complex sorting.
 
template<typename T >
double MayaFlux::Yantra::get_temporal_position (const T &item)
 Helper function to get temporal position from various types Used by TemporalSortable concept.
 
template<typename T >
SortKey MayaFlux::Yantra::create_universal_sort_key (const std::string &name, SortingDirection direction=SortingDirection::ASCENDING)
 Create universal sort key extractor for common data types.