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

◆ validate_numeric_data_for_analysis()

void MayaFlux::Kakshya::validate_numeric_data_for_analysis ( const std::vector< double > &  data,
const std::string &  operation_name,
size_t  min_size = 1 
)

Validates numeric data for analysis operations.

Parameters
dataData to validate
operation_nameName of operation for error messages
min_sizeMinimum required data size (default 1)
Exceptions
std::invalid_argumentif data is invalid for analysis

Definition at line 186 of file ContainerUtils.cpp.

189{
190 if (data.empty()) {
191 throw std::invalid_argument("Cannot perform " + operation_name + " on empty data");
192 }
193
194 if (data.size() < min_size) {
195 throw std::invalid_argument(operation_name + " requires at least " + std::to_string(min_size) + " data points, got " + std::to_string(data.size()));
196 }
197
198 if (auto invalid_it = std::ranges::find_if_not(data, [](double val) {
199 return std::isfinite(val);
200 });
201 invalid_it != data.end()) {
202
203 const auto index = std::distance(data.begin(), invalid_it);
204 throw std::invalid_argument(operation_name + " data contains NaN or infinite values at index " + std::to_string(index));
205 }
206}