MayaFlux 0.1.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 616 of file UniversalTransformer.hpp.

617 {
618 if constexpr (RequiresContainer<InputType>) {
619 if (!input.has_container()) {
620 return false;
621 }
622 auto numeric_data = OperationHelper::extract_numeric_data(input.data, input.container.value());
623 return validate_multi_channel_data(numeric_data);
624 } else {
625 auto numeric_data = OperationHelper::extract_numeric_data(input.data);
626 return validate_multi_channel_data(numeric_data);
627 }
628 }
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::IO< T >::container, MayaFlux::Yantra::IO< T >::data, and MayaFlux::Yantra::IO< T >::has_container().

+ Here is the call graph for this function: