1. A programmable filter comprising a tree of computational units, wherein each computation unit is configured to receive multiple inputs and generate multiple outputs, wherein the tree receives a set of input operands and generates output operands, wherein, in a sum of products mode, the output operands of the tree comprise a sum of products of the input operands by corresonding N-bit coefficients, wherein N is a positive integer, wherein, in a linear interpolation mode, each of the output operands of the tree comprise linear interpolations of at least two of the input operands, wherein coefficients of the linear interpolations have (N/J) bits of precision, wherein J is an integer greater than or equal to two and less than N.