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