/
nik2703
/
boundary_approx
Обзор
Документация
Войти
/
nik2703
/
boundary_approx
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
gpu_postprocessor.h
46 строк
2 KB
nik2703
upload files
07 окт 2025, 17:29
07 окт 2025, 17:29
32b847a
Код
Авторство
О чём код?
// gpu_postprocessor.h #pragma once #include <vector> #include <string> // Предварительные объявления вместо включения всего types.h struct GPUSegment; struct ApproximationResult; /** * @brief Класс для постобработки и валидации результатов аппроксимации границ на GPU. * Реализует проверку качества модели в соответствии с требованиями С.В. Зыкина, * в частности, отсутствие ложных экстремумов через анализ нормы градиента. */ class GPUPostProcessor { public: /** * @brief Результат валидации одного сегмента границы. */ struct ValidationResult { bool is_valid; ///< Флаг валидности (может быть true даже при предупреждениях) float rss; ///< Остаточная сумма квадратов (RSS) float max_gradient_norm; ///< Максимальная норма градиента на сегменте std::string warning_message; ///< Текст предупреждений, если есть }; /** * @brief Валидирует аппроксимацию одного сегмента границы. * * @param segment Исходный сегмент граничных точек. * @param result Результат аппроксимации (коэффициенты полинома). * @param poly_degree Степень полинома, использованная при аппроксимации. * @return ValidationResult Структура с результатами проверки. */ static ValidationResult validateApproximation( const GPUSegment& segment, const ApproximationResult& result, int poly_degree ); // Пороги для валидации (можно сделать настраиваемыми через сеттеры при необходимости) static constexpr float RSS_HIGH_THRESHOLD = 1e-2f; static constexpr float RSS_LOW_THRESHOLD = 1e-10f; static constexpr float GRADIENT_THRESHOLD = 10.0f; };