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

◆ extract_numeric_data() [2/3]

template<typename T >
requires (MultiVariant<T> || EigenMatrixLike<T>)
static std::vector< std::span< double > > MayaFlux::Yantra::OperationHelper::extract_numeric_data ( const T &  compute_data,
bool  needs_processig = false 
)
inlinestatic

extract numeric data from multi-variant types

Template Parameters
TComputeData type
Parameters
compute_dataInput data
Returns
Vector of spans of double data (one per channel/variant)

Definition at line 97 of file OperationHelper.hpp.

98 {
99 if constexpr (std::is_same_v<T, std::vector<Kakshya::DataVariant>>) {
100 return Kakshya::convert_variants<double>(compute_data, s_complex_strategy);
101 }
102
103 if constexpr (std::is_same_v<T, std::shared_ptr<Kakshya::SignalSourceContainer>>) {
104 if (needs_processig) {
105 if (compute_data->get_processing_state() != Kakshya::ProcessingState::PROCESSED) {
106 compute_data->process_default();
107 compute_data->update_processing_state(Kakshya::ProcessingState::PROCESSED);
108 }
109 std::vector<Kakshya::DataVariant> variant = compute_data->get_processed_data();
110 return Kakshya::convert_variants<double>(variant, s_complex_strategy);
111 }
112 std::vector<Kakshya::DataVariant> variant = compute_data->get_data();
113 return Kakshya::convert_variants<double>(variant, s_complex_strategy);
114 }
115
116 if constexpr (std::is_base_of_v<Eigen::MatrixBase<T>, T>)
117 return extract_from_eigen_matrix(compute_data);
118
119 return std::vector<std::span<double>> {};
120 }
static Utils::ComplexConversionStrategy s_complex_strategy
static std::vector< std::span< double > > extract_from_eigen_matrix(const EigenMatrix &matrix)
Infer data structure from ComputeData type.
@ PROCESSED
Container has completed processing and results are available.

References extract_from_eigen_matrix(), MayaFlux::Kakshya::PROCESSED, and s_complex_strategy.

+ Here is the call graph for this function: