(bind-func fir_half_80211
(let ((pop 1) (peek 2) (push 8)
(prepop 0) (prepeek 1) (prepush 8))
(lambda (input:QBuffer:$<i64*>* output)
(let ((rcc_taps:|16,i64|* (alloc))
(prework (lambda ()
(let ((previous 0)
(current (qbuf_peek input 0)))
(doloop (j 8)
(qbuf_push output
(/ (+ (* (aref rcc_taps j) (/ current 1024))
(* (aref rcc_taps (+ j 8)) (/ previous 1024)))
1024)))
void))))
(afill! rcc_taps 0 -666 69361 157964 255889 351141 430952 484036 502648 484036 430952 351141 255889 157964 69361 -666)
(lambda ()
(let ((previous (qbuf_peek input 0))
(current (qbuf_peek input 1)))
(doloop (j 8)
(qbuf_push output
(/ (+ (* (aref rcc_taps j) (/ current 1024))
(* (aref rcc_taps (+ j 8)) (/ previous 1024)))
1024)))
(qbuf_pop input)
void))))))