MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
UniversalSorter.hpp File Reference

Modern, digital-first universal sorting framework for Maya Flux. More...

+ Include dependency graph for UniversalSorter.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MayaFlux::Yantra::SortKey
 Multi-dimensional sort key specification for complex sorting. More...
 
class  MayaFlux::Yantra::UniversalSorter< InputType, OutputType >
 Template-flexible sorter base with instance-defined I/O types. More...
 

Namespaces

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

Typedefs

template<ComputeData OutputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::DataSorter = UniversalSorter< std::vector< Kakshya::DataVariant >, OutputType >
 Sorter that takes DataVariant and produces DataVariant.
 
template<ComputeData OutputType = std::shared_ptr<Kakshya::SignalSourceContainer>>
using MayaFlux::Yantra::ContainerSorter = UniversalSorter< std::shared_ptr< Kakshya::SignalSourceContainer >, OutputType >
 Sorter for signal container processing.
 
template<ComputeData OutputType = Kakshya::Region>
using MayaFlux::Yantra::RegionSorter = UniversalSorter< Kakshya::Region, OutputType >
 Sorter for region-based sorting.
 
template<ComputeData OutputType = Kakshya::RegionGroup>
using MayaFlux::Yantra::RegionGroupSorter = UniversalSorter< Kakshya::RegionGroup, OutputType >
 Sorter for region group processing.
 
template<ComputeData OutputType = std::vector<Kakshya::RegionSegment>>
using MayaFlux::Yantra::SegmentSorter = UniversalSorter< std::vector< Kakshya::RegionSegment >, OutputType >
 Sorter for segment processing.
 
template<ComputeData InputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::MatrixSorter = UniversalSorter< InputType, Eigen::MatrixXd >
 Sorter that produces Eigen matrices.
 
template<ComputeData InputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::VectorSorter = UniversalSorter< InputType, Eigen::VectorXd >
 Sorter that produces Eigen vectors.
 
template<typename T , ComputeData OutputType = std::vector<std::vector<T>>>
using MayaFlux::Yantra::VectorContainerSorter = UniversalSorter< std::vector< std::vector< T > >, OutputType >
 Sorter for vector containers.
 
template<ComputeData InputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::IndexSorter = UniversalSorter< InputType, std::vector< std::vector< size_t > > >
 Sorter for indices generation.
 

Enumerations

enum class  MayaFlux::Yantra::SortingType : uint8_t {
  MayaFlux::Yantra::STANDARD , MayaFlux::Yantra::ALGORITHMIC , MayaFlux::Yantra::PATTERN_BASED , MayaFlux::Yantra::TEMPORAL ,
  MayaFlux::Yantra::SPATIAL , MayaFlux::Yantra::PREDICTIVE , MayaFlux::Yantra::CROSS_MODAL , MayaFlux::Yantra::RECURSIVE ,
  MayaFlux::Yantra::CUSTOM
}
 Categories of sorting operations for discovery and organization. More...
 
enum class  MayaFlux::Yantra::SortingStrategy : uint8_t {
  MayaFlux::Yantra::IN_PLACE , MayaFlux::Yantra::COPY_SORT , MayaFlux::Yantra::INDEX_ONLY , MayaFlux::Yantra::PARTIAL_SORT ,
  MayaFlux::Yantra::LAZY_SORT , MayaFlux::Yantra::CHUNKED_SORT , MayaFlux::Yantra::PARALLEL_SORT
}
 Sorting execution strategies. More...
 
enum class  MayaFlux::Yantra::SortingDirection : uint8_t { MayaFlux::Yantra::ASCENDING , MayaFlux::Yantra::DESCENDING , MayaFlux::Yantra::CUSTOM , MayaFlux::Yantra::BIDIRECTIONAL }
 Basic sort direction for simple comparisons. More...
 
enum class  MayaFlux::Yantra::SortingGranularity : uint8_t { MayaFlux::Yantra::RAW_DATA , MayaFlux::Yantra::ATTRIBUTED_INDICES , MayaFlux::Yantra::ORGANIZED_GROUPS , MayaFlux::Yantra::DETAILED_ANALYSIS }
 Output granularity control for sorting results. More...
 

Detailed Description

Modern, digital-first universal sorting framework for Maya Flux.

The UniversalSorter system provides a clean, extensible foundation for data sorting in the Maya Flux ecosystem. Unlike traditional sorting which operates on simple containers, this embraces the digital paradigm: data-driven workflows, composability, and type safety.

Core Philosophy

A sorter organizes ComputeData through digital-first approaches:

  1. Algorithmic sorting: Advanced mathematical operations, not simple comparisons
  2. Multi-dimensional sorting: N-dimensional sort keys, not just single values
  3. Temporal sorting: Sort based on time-series patterns, predictions
  4. Cross-modal sorting: Sort audio by visual features, video by audio, etc.
  5. Computational sorting: Leverage digital capabilities beyond analog metaphors

Key Features

  • Universal input/output: Template-based I/O types defined at instantiation
  • Type-safe sorting: C++20 concepts and compile-time guarantees
  • Sorting strategies: Algorithmic, pattern-based, predictive
  • Composable operations: Integrates with ComputeMatrix execution modes
  • Digital-first design: Embraces computational possibilities beyond analog metaphors

Usage Examples

// Sort DataVariant containing vectors
auto sorter = std::make_shared<MySorter<Kakshya::DataVariant>>();
// Sort regions by custom criteria
auto region_sorter = std::make_shared<MySorter<
std::vector<Kakshya::Region>,
std::vector<Kakshya::Region>>>();
// Sort with mathematical transformation
auto matrix_sorter = std::make_shared<MySorter<
Eigen::MatrixXd,
Eigen::MatrixXd>>();

Definition in file UniversalSorter.hpp.