From 583d6d12f404f67197d7037991a57ef2a038ad4d Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 16 Oct 2015 19:06:49 +0200 Subject: accela: drop NaN/+-inf values --- ftnoir_filter_accela/ftnoir_filter_accela.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ftnoir_filter_accela/ftnoir_filter_accela.cpp b/ftnoir_filter_accela/ftnoir_filter_accela.cpp index ab5fda07..81ef3948 100644 --- a/ftnoir_filter_accela/ftnoir_filter_accela.cpp +++ b/ftnoir_filter_accela/ftnoir_filter_accela.cpp @@ -88,7 +88,9 @@ void FTNoIR_Filter::filter(const double* input, double *output) { Map& m = i >= 3 ? rot : trans; - smoothed_input[i] = smoothed_input[i] * (1.-alpha) + input[i] * alpha; + const bool drop = std::isnan(input[i]) || std::isinf(input[i]); + const double f = drop ? last_output[i] : input[i]; + smoothed_input[i] = smoothed_input[i] * (1.-alpha) + f * alpha; const double in = smoothed_input[i]; -- cgit v1.2.3