MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType > Class Template Reference

High-performance statistical analyzer with zero-copy processing. More...

#include <StatisticalAnalyzer.hpp>

+ Inheritance diagram for MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >:
+ Collaboration diagram for MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >:

Public Types

using input_type = IO< InputType >
 
using output_type = IO< OutputType >
 
using base_type = UniversalAnalyzer< InputType, OutputType >
 
- Public Types inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
using input_type = IO< InputType >
 
using output_type = IO< OutputType >
 
using base_type = ComputeOperation< InputType, OutputType >
 
- Public Types inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
using input_type = IO< InputType >
 
using output_type = IO< OutputType >
 

Public Member Functions

 StatisticalAnalyzer (uint32_t window_size=512, uint32_t hop_size=256)
 Construct StatisticalAnalyzer with configurable window parameters.
 
StatisticalAnalysis analyze_statistics (const InputType &data)
 Type-safe statistical analysis method.
 
StatisticalAnalysis get_statistical_analysis () const
 Get last statistical analysis result (type-safe)
 
AnalysisType get_analysis_type () const override
 Get analysis type category.
 
std::vector< std::string > get_available_methods () const override
 Get available analysis methods.
 
template<typename T >
std::vector< std::string > get_methods_for_type () const
 Get supported methods for specific input type.
 
template<typename T >
bool supports_input_type () const
 Check if analyzer supports given input type.
 
void set_method (StatisticalMethod method)
 Set statistical analysis method.
 
void set_method (const std::string &method_name)
 Set method by string name.
 
StatisticalMethod get_method () const
 Get current statistical method.
 
void set_window_size (uint32_t size)
 Set window size for windowed analysis.
 
void set_hop_size (uint32_t size)
 Set hop size for windowed analysis.
 
uint32_t get_window_size () const
 Get window size.
 
uint32_t get_hop_size () const
 Get hop size.
 
void set_classification_enabled (bool enabled)
 Enable/disable outlier classification.
 
bool is_classification_enabled () const
 Check if classification is enabled.
 
StatisticalLevel classify_statistical_level (double value) const
 Classify statistical value qualitatively.
 
- Public Member Functions inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
virtual ~UniversalAnalyzer ()=default
 
std::string get_name () const override
 Gets human-readable name for this analyzer.
 
void set_parameter (const std::string &name, std::any value) override
 Type-safe parameter management with analysis-specific defaults.
 
std::any get_parameter (const std::string &name) const override
 Retrieves a parameter's current value.
 
std::map< std::string, std::any > get_all_parameters () const override
 Retrieves all parameters and their values.
 
void set_analysis_granularity (AnalysisGranularity granularity)
 
AnalysisGranularity get_analysis_granularity () const
 
bool validate_input (const input_type &input) const override
 Validates input data meets analyzer requirements.
 
virtual bool supports_method (const std::string &method) const
 Check if a specific analysis method is supported.
 
std::any analyze_data (const InputType &data)
 User-facing analysis method - returns analysis results directly.
 
std::vector< std::any > analyze_batch (const std::vector< InputType > &inputs)
 Batch analysis for multiple inputs.
 
std::any get_current_analysis () const
 Access cached analysis from last operation.
 
bool has_current_analysis () const
 Check if analysis has been performed.
 
template<typename T >
get_parameter_or_default (const std::string &name, const T &default_value) const
 Helper to get typed parameter with default value.
 
- Public Member Functions inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
 ComputeOperation ()
 Constructor with data type validation warnings.
 
virtual ~ComputeOperation ()=default
 Virtual destructor for proper cleanup of derived classes.
 
output_type apply_operation (const input_type &input)
 Public synchronous execution interface.
 
output_type apply_operation_with_dependencies (const input_type &input)
 Applies the operation with dependencies resolved.
 
output_type operator() (const InputType &data)
 Convenience overload for direct data processing (backward compatibility)
 
OutputType apply_to_data (const InputType &data)
 Convenience overload that extracts just the data from result.
 
output_type execute (const input_type &input)
 OpUnit interface - operations can act as units in dependency graphs.
 
void add_dependency (std::shared_ptr< ComputeOperation > dep)
 
const auto & get_dependencies () const
 
virtual void set_container_for_regions (const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
 
virtual const std::shared_ptr< Kakshya::SignalSourceContainer > & get_container_for_regions () const
 
void set_last_execution_context (const ExecutionContext &ctx)
 
const ExecutionContextget_last_execution_context () const
 
void set_pre_execution_hook (const OpererationHookCallback &hook)
 
void set_post_execution_hook (const OpererationHookCallback &hook)
 
void set_reconstruction_callback (const ReconstructionCallback &callback)
 

Static Public Member Functions

static std::string method_to_string (StatisticalMethod method)
 Convert statistical method enum to string.
 
static StatisticalMethod string_to_method (const std::string &str)
 Convert string to statistical method enum.
 
static std::string statistical_level_to_string (StatisticalLevel level)
 Convert statistical level enum to string.
 

Protected Member Functions

std::string get_analyzer_name () const override
 Get analyzer name.
 
output_type analyze_implementation (const input_type &input) override
 Core analysis implementation - creates analysis result AND pipeline output.
 
void set_analysis_parameter (const std::string &name, std::any value) override
 Handle analysis-specific parameters.
 
std::any get_analysis_parameter (const std::string &name) const override
 Get analysis-specific parameter.
 
std::vector< std::string > get_methods_for_type_impl (std::type_index) const
 Get supported methods for specific type index.
 
- Protected Member Functions inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
output_type operation_function (const input_type &input) override
 Core analysis implementation - must be overridden by derived classes.
 
virtual std::map< std::string, std::any > get_all_analysis_parameters () const
 
virtual bool validate_analysis_input (const input_type &) const
 Input validation (override for custom validation logic)
 
virtual output_type apply_granularity_formatting (const output_type &raw_output)
 Apply granularity-based output formatting.
 
virtual output_type add_attribution_metadata (const output_type &raw_output)
 Add attribution metadata to results (override for custom attribution)
 
virtual output_type organize_into_groups (const output_type &raw_output)
 Organize results into hierarchical groups (override for custom grouping)
 
virtual output_type create_summary_statistics (const output_type &raw_output)
 Create summary statistics from results (override for custom summaries)
 
template<typename AnalysisResultType >
void store_current_analysis (AnalysisResultType &&result) const
 
- Protected Member Functions inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
virtual output_type apply_operation_internal (const input_type &input, const ExecutionContext &context)
 Internal execution method - ComputeMatrix can access this.
 
virtual std::future< output_typeapply_operation_async (const input_type &input)
 Optional async implementation - default delegates to operation_function.
 
virtual output_type apply_operation_parallel (const input_type &input, const ExecutionContext &ctx)
 Optional parallel-aware implementation - default delegates to operation_function.
 
virtual output_type apply_operation_chained (const input_type &input, const ExecutionContext &ctx)
 Optional chain-aware implementation - default delegates to operation_function.
 
output_type convert_result (std::vector< std::vector< double > > &result_data, DataStructureInfo &metadata)
 Convert processed double data back to OutputType using metadata and optional callback.
 

Private Member Functions

void validate_window_parameters () const
 Validate window parameters.
 
std::vector< double > compute_statistical_values (std::span< const double > data, StatisticalMethod method) const
 Compute statistical values using span (zero-copy processing)
 
size_t calculate_num_windows (size_t data_size) const
 Calculate number of windows for given data size.
 
StatisticalAnalysis create_analysis_result (const std::vector< std::vector< double > > &stat_values, std::vector< std::span< const double > > original_data, const auto &) const
 Create comprehensive analysis result.
 
output_type create_pipeline_output (const input_type &input, const StatisticalAnalysis &analysis_result, DataStructureInfo &info)
 Create pipeline output for operation chaining.
 

Private Attributes

StatisticalMethod m_method { StatisticalMethod::MEAN }
 
uint32_t m_window_size
 
uint32_t m_hop_size
 
bool m_classification_enabled { true }
 
double m_percentile_value { 50.0 }
 
bool m_sample_variance { true }
 
double m_outlier_threshold { 3.0 }
 
double m_extreme_low_threshold { -2.0 }
 
double m_low_threshold { -1.0 }
 
double m_high_threshold { 1.0 }
 
double m_extreme_high_threshold { 2.0 }
 

Additional Inherited Members

- Protected Attributes inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
std::any m_current_analysis
 
output_type m_current_output
 
- Protected Attributes inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
std::shared_ptr< Kakshya::SignalSourceContainerm_container
 
ExecutionContext m_last_execution_context
 

Detailed Description

template<ComputeData InputType = std::vector<Kakshya::DataVariant>, ComputeData OutputType = Eigen::VectorXd>
class MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >

High-performance statistical analyzer with zero-copy processing.

The StatisticalAnalyzer provides comprehensive statistical analysis capabilities for digital data streams using span-based processing for maximum efficiency. All data extraction and conversion is handled automatically by OperationHelper.

Example usage:

// DataVariant -> VectorXd analyzer
auto stat_analyzer = std::make_shared<StatisticalAnalyzer<Kakshya::DataVariant, Eigen::VectorXd>>();
// User-facing analysis
auto analysis = stat_analyzer->analyze_data(numeric_data);
auto stat_result = safe_any_cast<StatisticalAnalysisResult>(analysis);
// Pipeline usage
auto pipeline_output = stat_analyzer->apply_operation(IO{numeric_data});
Input/Output container for computation pipeline data flow with structure preservation.
Definition DataIO.hpp:24

Definition at line 129 of file StatisticalAnalyzer.hpp.


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