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

◆ insert_converted()

template<typename From , typename To >
void MayaFlux::Kakshya::DataInsertion::insert_converted ( const std::vector< From > &  source,
DataModality  target_modality 
)
inline

Convert and insert from different type.

Template Parameters
FromSource type
ToTarget type
Parameters
sourceSource data
target_modalitySemantic interpretation

Definition at line 117 of file DataInsertion.hpp.

118 {
119 std::vector<To> converted;
120 converted.reserve(source.size());
121
122 if constexpr (std::is_arithmetic_v<From> && std::is_arithmetic_v<To>) {
123 std::ranges::transform(source, std::back_inserter(converted),
124 [](From val) { return static_cast<To>(val); });
125 } else if constexpr (std::is_same_v<From, std::complex<float>> || std::is_same_v<From, std::complex<double>>) {
126 std::ranges::transform(source, std::back_inserter(converted),
127 [](From val) { return static_cast<To>(std::abs(val)); });
128 } else {
129 error<std::invalid_argument>(
132 std::source_location::current(),
133 "Unsupported conversion from {} to {}",
134 typeid(From).name(),
135 typeid(To).name());
136 }
137
138 insert_scalar(std::move(converted), target_modality);
139 }
void insert_scalar(std::vector< T > data, DataModality target_modality, bool replace_existing=true)
Insert scalar array data.
@ Runtime
General runtime operations (default fallback)
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.