sigProcLib: Use explicit NaN check in sinc table generation
Using "x < 0.01" is a crude check for detecting NaN condition, which
occurs in a sinc call when x = 0 due to divide-by-zero. Use stdlib
isnan() call for this purpose. Also, as the table is created only
once during initialization, use double floats for table value
generation.
Change-Id: I3a838fe3139fa977dfe906246020a14451185714
diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index c776501..9d1ef49 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -979,16 +979,10 @@
static void generateSincTable()
{
- float x;
-
for (int i = 0; i < TABLESIZE; i++) {
- x = (float) i / TABLESIZE * 8 * M_PI;
- if (fabs(x) < 0.01) {
- sincTable[i] = 1.0f;
- continue;
- }
-
- sincTable[i] = sinf(x) / x;
+ auto x = (double) i / TABLESIZE * 8 * M_PI;
+ auto y = sin(x) / x;
+ sincTable[i] = isnan(y) ? 1.0 : y;
}
}