1. A method for optimizing a digital filter defined by a plurality of coefficients that are multiplied by input data and accumulated to generate output data, the method comprising the steps of: compiling a factorization set of candidate factors based on the plurality of coefficients; and for each candidate factor in the factorization set: applying the candidate factor to the plurality of coefficients to compile a working set of terms; converting terms in the working set to power-of-two representations; grouping terms in the working set that have a common partial sum, or multiple of the partial sum, within their respective power-of-two representations; compiling a reduction set from the grouped terms and selecting an order of application of the reduction set based on optimization objectives; applying the reduction set to the working set of terms to generate an optimized solution; and ranking and storing the optimized solution based on the optimization objectives wherein the method is implemented by a computer, wherein the optimized solution is ranked against a current solution based on the optimization objectives, and wherein the optimized solution is stored in place of the current solution if the optimized solution is ranked better than the current solution.