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

◆ extract_numeric_data() [1/3]

template<typename T >
requires SingleVariant<T>
static std::span< double > MayaFlux::Yantra::OperationHelper::extract_numeric_data ( const T &  compute_data)
inlinestatic

extract numeric data from single-variant types

Template Parameters
TComputeData type
Parameters
compute_dataInput data
Returns
Span of double data

Definition at line 74 of file OperationHelper.hpp.

75 {
76 if constexpr (std::is_same_v<T, Kakshya::DataVariant>) {
77 auto const_span = Kakshya::convert_variant<double>(compute_data);
78 return std::span<double>(const_cast<double*>(const_span.data()), const_span.size());
79 }
80 if constexpr (std::is_base_of_v<Eigen::MatrixBase<T>, T>) {
82 return Kakshya::convert_variant<double>(variant, s_complex_strategy);
83 }
84
85 Kakshya::DataVariant variant { compute_data };
87 }
static Utils::ComplexConversionStrategy s_complex_strategy
static Kakshya::DataVariant create_data_variant_from_eigen(const EigenType &eigen_data)
Create DataVariant from Eigen matrix/vector.
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
Definition NDData.hpp:73
std::span< double > convert_variant_to_double(DataVariant &data, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
Convert variant to double span.

References MayaFlux::Kakshya::convert_variant_to_double(), create_data_variant_from_eigen(), and s_complex_strategy.

Referenced by MayaFlux::dynamic_range_global(), extract_structured_double(), MayaFlux::Yantra::generate_compute_data_indices(), MayaFlux::mean_combined(), MayaFlux::mix(), MayaFlux::mix_with_gains(), MayaFlux::rms_combined(), MayaFlux::Yantra::sort_compute_data_inplace(), MayaFlux::std_dev_combined(), MayaFlux::to_double_vector(), MayaFlux::to_double_vectors(), MayaFlux::Yantra::transform_regions(), and MayaFlux::Yantra::transform_regions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: