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

◆ reconstruct_from_double() [1/2]

template<ComputeData T>
requires (!is_IO<T>::value)
static T MayaFlux::Yantra::OperationHelper::reconstruct_from_double ( const std::vector< std::vector< double > > &  double_data,
const DataStructureInfo structure_info 
)
inlinestatic

Reconstruct ComputeData type from double vector and structure info.

Template Parameters
TTarget ComputeData type
Parameters
double_dataProcessed double vector
structure_infoOriginal structure metadata
Returns
Reconstructed data of type T

Definition at line 452 of file OperationHelper.hpp.

454 {
455 if constexpr (std::is_same_v<T, std::vector<std::vector<double>>>) {
456 return double_data;
457 } else if constexpr (std::is_same_v<T, Eigen::MatrixXd>) {
458 return recreate_eigen_matrix(double_data, structure_info);
459 } else if constexpr (std::is_same_v<T, std::vector<Kakshya::DataVariant>>) {
460 std::vector<Kakshya::DataVariant> variants;
461 variants.reserve(double_data.size());
462 for (const auto& vec : double_data) {
463 variants.emplace_back(vec);
464 }
465 return variants;
466 } else if constexpr (std::is_same_v<T, Kakshya::DataVariant>) {
467 auto data = Kakshya::interleave_channels<double>(double_data);
468 return reconstruct_data_variant_from_double(data, structure_info);
469 } else {
470 error<std::runtime_error>(Journal::Component::Yantra, Journal::Context::Runtime, std::source_location::current(), "Reconstruction not implemented for target type {}", structure_info.original_type.name());
471 return T {};
472 }
473 }
static Kakshya::DataVariant reconstruct_data_variant_from_double(const std::vector< double > &double_data, const DataStructureInfo &structure_info)
Reconstruct DataVariant from double data and structure info.
static Eigen::MatrixXd recreate_eigen_matrix(const std::vector< std::vector< double > > &columns, const DataStructureInfo &structure_info)
Infer data structure from ComputeData type.
@ Runtime
General runtime operations (default fallback)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.

References MayaFlux::Yantra::DataStructureInfo::original_type.