MayaFlux 0.3.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 96 of file OperationHelper.hpp.

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