Listing 3 Circular Buffer 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