Listing 1

 1    X _Fract coeff[N] = { 0.7r, ... } ;
 2    
 3    _Fract fir( Y _Fract *inp ) {
 4        int i ;
 5        _Accum sum = 0.0k ;
 6        for( i = 0 ; i < N ; i++ ) {
 7            sum += coeff[i] * (_Accum)*inp++ ;
 8        }
 9        return (_Sat _Fract)sum ;
10    }