MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Yantra::OperationHelper Class Reference

Universal data conversion helper for all Yantra operations. More...

#include <OperationHelper.hpp>

+ Collaboration diagram for MayaFlux::Yantra::OperationHelper:

Static Public Member Functions

static void set_complex_conversion_strategy (Utils::ComplexConversionStrategy strategy)
 Set global complex conversion strategy.
 
static Utils::ComplexConversionStrategy get_complex_conversion_strategy ()
 Get current complex conversion strategy.
 
template<typename T >
requires SingleVariant<T>
static std::span< double > extract_numeric_data (const T &compute_data)
 extract numeric data from single-variant types
 
template<typename T >
requires (MultiVariant<T> || EigenMatrixLike<T>)
static std::vector< std::span< double > > extract_numeric_data (const T &compute_data, bool needs_processig=false)
 extract numeric data from multi-variant types
 
template<typename T >
requires RegionLike<T>
static std::vector< std::span< double > > extract_numeric_data (const T &compute_data, const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
 extract numeric data from region-like types
 
template<typename T >
requires MultiVariant<T>
static std::vector< Kakshya::DataVariantto_data_variant (const T &compute_data)
 Convert ComputeData to DataVariant format.
 
template<typename T >
requires RegionLike<T>
static std::vector< Kakshya::DataVariantto_data_variant (const T &compute_data, const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
 Convert region-like ComputeData to DataVariant format.
 
template<OperationReadyData T>
static std::tuple< std::vector< std::span< double > >, DataStructureInfoextract_structured_double (T &compute_data)
 Extract structured double data from IO container or direct ComputeData with automatic container handling.
 
template<ComputeData T>
requires (!is_IO<T>::value)
static T reconstruct_from_double (const std::vector< std::vector< double > > &double_data, const DataStructureInfo &structure_info)
 Reconstruct ComputeData type from double vector and structure info.
 
template<typename T >
requires is_IO<T>
static ::value T reconstruct_from_double (const std::vector< std::vector< double > > &double_data, const DataStructureInfo &structure_info)
 Reconstruct IO type from double vector and structure info.
 
template<OperationReadyData T>
static auto setup_operation_buffer (T &input, std::vector< std::vector< double > > &working_buffer)
 Setup operation buffer from IO or ComputeData type.
 

Static Private Member Functions

template<typename EigenType >
static Kakshya::DataVariant create_data_variant_from_eigen (const EigenType &eigen_data)
 Create DataVariant from Eigen matrix/vector.
 
template<typename EigenMatrix >
static std::vector< std::span< double > > extract_from_eigen_matrix (const EigenMatrix &matrix)
 Infer data structure from ComputeData type.
 
template<typename EigenMatrix >
static std::vector< Kakshya::DataVariantconvert_eigen_matrix_to_variant (const EigenMatrix &matrix)
 Extract data from Eigen vector to double span.
 
template<typename T >
static Eigen::MatrixXd create_eigen_matrix (const std::vector< std::vector< T > > &columns)
 Infer data structure from ComputeData type.
 
template<typename T >
static Eigen::MatrixXd create_eigen_matrix (const std::vector< std::span< const T > > &spans)
 Create Eigen matrix from spans.
 
static Eigen::MatrixXd recreate_eigen_matrix (const std::vector< std::vector< double > > &columns, const DataStructureInfo &structure_info)
 Infer data structure from ComputeData type.
 
static Eigen::MatrixXd recreate_eigen_matrix (const std::vector< std::span< const double > > &spans, const DataStructureInfo &structure_info)
 Infer data structure from ComputeData type.
 
static Kakshya::DataVariant reconstruct_data_variant_from_double (const std::vector< double > &double_data, const DataStructureInfo &structure_info)
 Reconstruct DataVariant from double data and structure info.
 

Static Private Attributes

static Utils::ComplexConversionStrategy s_complex_strategy = Utils::ComplexConversionStrategy::MAGNITUDE
 

Detailed Description

Universal data conversion helper for all Yantra operations.

Provides a unified interface for converting between ComputeData types and processing formats. All operations (analyzers, sorters, extractors, transformers) can use this helper to:

  1. Convert any ComputeData → DataVariant → std::vector<double>
  2. Process data in double format (universal algorithms)
  3. Reconstruct results back to target ComputeData types

Key Features:

  • Universal conversion path for all ComputeData types
  • Structure preservation via metadata
  • Configurable complex number handling
  • Lossless conversions (except complex → double)
  • Thread-safe operation

Definition at line 52 of file OperationHelper.hpp.


The documentation for this class was generated from the following files: