Revision: 49966
          http://brlcad.svn.sourceforge.net/brlcad/?rev=49966&view=rev
Author:   brlcad
Date:     2012-04-10 20:52:40 +0000 (Tue, 10 Apr 2012)
Log Message:
-----------
simplify the bounds checking.  just use the one larger MAXFFT global for 
everything including the outputs, even though they only use half the space.  
avoids off-by-one issues and simplifies the code.  Keep the convolution at 1024 
by default.

Modified Paths:
--------------
    brlcad/trunk/src/sig/dfft.c

Modified: brlcad/trunk/src/sig/dfft.c
===================================================================
--- brlcad/trunk/src/sig/dfft.c 2012-04-10 20:34:38 UTC (rev 49965)
+++ brlcad/trunk/src/sig/dfft.c 2012-04-10 20:52:40 UTC (rev 49966)
@@ -37,7 +37,6 @@
 #include "vmath.h"
 
 #define MAXFFT 4096
-#define MAXOUT 2048            /* MAXFFT/2 XXX (Actually + 1) */
 
 double data[MAXFFT];           /* Data buffer: 2*Points in spectrum */
 
@@ -55,7 +54,7 @@
 void fftdisp(double *dat, int N);
 void fftmag2(double *mags, double *dat, int N);
 void fftphase(double *dat, int N);
-void rfft();
+void rfft(double *dat, int N);
 void LintoLog(double *in, double *out, int num);
 
 static const char usage[] = "\
@@ -77,7 +76,7 @@
        bu_exit(1, "%s", usage);
     }
 
-    while ((c = bu_getopt(argc, argv, "d:clpLANh")) != -1)
+    while ((c = bu_getopt(argc, argv, "d:clpLANh")) != -1) {
        switch (c) {
            case 'd': mindB = -atof(bu_optarg); break;
            case 'c': cflag++; break;
@@ -91,9 +90,6 @@
            case '?':
            default:  printf("Unknown argument: %c\n%s\n", c, usage); return 
EXIT_FAILURE;
        }
-
-    if (L > MAXFFT) {
-       bu_exit(2, "dfft: can't go over %d\n", MAXFFT);
     }
 
     /* Calculate Critical Band filter weights */
@@ -128,7 +124,7 @@
 fftdisp(double *dat, int N)
 {
     int i, j;
-    double mags[MAXOUT];
+    double mags[MAXFFT];
     size_t ret;
 
     /* Periodogram scaling */
@@ -139,7 +135,7 @@
 
     /* Interp to Log freq scale */
     if (lflag) {
-       double logout[MAXOUT+1];
+       double logout[MAXFFT];
 
        LintoLog(mags, logout, N/2);
        /* put result back in mags */
@@ -150,7 +146,7 @@
     /* Critical Band Filter */
     if (cflag) {
        double sum;
-       double tmp[MAXOUT];
+       double tmp[MAXFFT];
 
        /* save working copy */
        for (i = 0; i < N/2; i++)

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to