Listing 3.  CircularBuffer and Filter structures
          
          typedef struct {
              int index,      /* index for next filter output */
                 mask;       /* masking value (length - 1) */
              double *buffer;
          } CircularBuffer;
          
          typedef struct {
              double *coef;   /* Filter coefficients */
              int order;     /* Number of coefficients */
              CircularBuffer *y;   /* Previous outputs */
          } Filter
          


