From 130d98463c48bce2f51809419335f14b0041b10e Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Tue, 5 Aug 2014 11:17:29 +0200 Subject: [PATCH] ioc/db (recGblCheckDeadband): pull most common case to front --- src/ioc/db/recGbl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ioc/db/recGbl.c b/src/ioc/db/recGbl.c index 6466fa6cd..f7dfee333 100644 --- a/src/ioc/db/recGbl.c +++ b/src/ioc/db/recGbl.c @@ -280,13 +280,13 @@ void recGblCheckDeadband(epicsFloat64 *poldval, const epicsFloat64 newval, { double delta = 0; - if (!!isnan(newval) != !!isnan(*poldval) || !!isinf(newval) != !!isinf(*poldval)) { - /* one is NaN or +-inf, the other finite -> send update */ - delta = epicsINF; - } else if (!isinf(newval) && !isnan(newval)) { + if (finite(newval) && finite(*poldval)) { /* both are finite -> compare delta with deadband */ delta = *poldval - newval; if (delta < 0.0) delta = -delta; + } else if (!!isnan(newval) != !!isnan(*poldval) || !!isinf(newval) != !!isinf(*poldval)) { + /* one is NaN or +-inf, the other not -> send update */ + delta = epicsINF; } else if (signbit(newval) != signbit(*poldval)) { /* one is +inf, the other -inf -> send update */ delta = epicsINF;