MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ validate_input()

template<ComputeData InputType = Kakshya::DataVariant, ComputeData OutputType = InputType>
bool MayaFlux::Yantra::UniversalTransformer< InputType, OutputType >::validate_input ( const input_type input) const
inlineoverrideprotectedvirtual

Basic input validation that derived classes can override.

Parameters
inputInput data to validate
Returns
true if input is valid for processing, false otherwise

Base implementation checks for:

  • Non-empty data
  • Basic data type validity
  • Finite values (no NaN/infinity in sample data)

Derived transformers can override to add specific requirements (e.g., minimum size for spectral operations, specific data structure requirements).

Reimplemented from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >.

Definition at line 621 of file UniversalTransformer.hpp.

622 {
623 if constexpr (RequiresContainer<InputType>) {
624 if (!input.has_container()) {
625 return false;
626 }
627 auto numeric_data = OperationHelper::extract_numeric_data(input.data, input.container.value());
628 return validate_multi_channel_data(numeric_data);
629 } else {
630 auto numeric_data = OperationHelper::extract_numeric_data(input.data);
631 return validate_multi_channel_data(numeric_data);
632 }
633 }
static std::span< double > extract_numeric_data(const T &compute_data)
extract numeric data from single-variant types
bool validate_multi_channel_data(const std::vector< std::span< double > > &channels) const
Validates multi-channel numeric data for NaN/Infinity values.

References MayaFlux::Yantra::Datum< T >::container, MayaFlux::Yantra::Datum< T >::data, and MayaFlux::Yantra::Datum< T >::has_container().

+ Here is the call graph for this function: