Convert and insert from different type.
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
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.