MayaFlux 0.2.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 116 of file DataInsertion.hpp.

117 {
118 std::vector<To> converted;
119 converted.reserve(source.size());
120
121 if constexpr (std::is_arithmetic_v<From> && std::is_arithmetic_v<To>) {
122 std::ranges::transform(source, std::back_inserter(converted),
123 [](From val) { return static_cast<To>(val); });
124 } else if constexpr (std::is_same_v<From, std::complex<float>> || std::is_same_v<From, std::complex<double>>) {
125 std::ranges::transform(source, std::back_inserter(converted),
126 [](From val) { return static_cast<To>(std::abs(val)); });
127 } else {
128 error<std::invalid_argument>(
131 std::source_location::current(),
132 "Unsupported conversion from {} to {}",
133 typeid(From).name(),
134 typeid(To).name());
135 }
136
137 insert_scalar(std::move(converted), target_modality);
138 }
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.