static inline define hack for GCC where it really helps the mdct
[platform/upstream/libvorbis.git] / lib / iir.h
1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
5  * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH    *
6  * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.        *
7  *                                                                  *
8  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2000             *
9  * by Monty <monty@xiph.org> and the XIPHOPHORUS Company            *
10  * http://www.xiph.org/                                             *
11  *                                                                  *
12  ********************************************************************
13
14   function: Direct Form I, II IIR filters, plus some specializations
15   last mod: $Id: iir.h,v 1.4 2000/11/07 09:51:43 xiphmont Exp $
16
17  ********************************************************************/
18
19 #ifndef _V_IIR_H_
20 #define _V_IIR_H_
21
22 typedef struct {
23   int stages;
24   float *coeff_A;
25   float *coeff_B;
26   float *z_A;
27   int ring;
28   float gain;
29 } IIR_state;
30
31 extern void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B);
32 extern void IIR_clear(IIR_state *s);
33 extern float IIR_filter(IIR_state *s,float in);
34 extern float IIR_filter_ChebBand(IIR_state *s,float in);
35 extern void IIR_reset(IIR_state *s);
36
37 #endif