1. A hardware accelerator comprising: a mode selector input for providing a mode signal; a plurality of data inputs for receiving numeric data values, the plurality of data inputs comprising a first, second, third, and fourth data input; a plurality of coefficient inputs for receiving numeric coefficient values, the plurality of coefficient inputs comprising a first, second, third, and fourth coefficient input; a first multiplexer having a first multiplexer output for providing the numeric data value received from the first data input when the mode signal is in a first state, and the numeric data value received from the third data input when the mode signal is in a second state; a second multiplexer having a second multiplexer output for providing the numeric data value received from the second data input when the mode signal is in the first state, and the numeric data value received from the fourth data input when the mode signal is in the second state; a first multiplier having a first multiplier output for providing a first product, the first product being the product of the numeric coefficient value received from the first coefficient input and the numeric data value received from the first multiplexer output; a second multiplier having a second multiplier output for providing a second product, the second product being the product of the numeric coefficient value received from the third coefficient input and the numeric data value received from the third data input; a third multiplier having a third multiplier output for providing a third product, the third product being the product of the numeric coefficient value received from the second coefficient input and the numeric data value received from the second multiplexer output; a fourth multiplier having a fourth multiplier output for providing a fourth product, the fourth product being the product of the numeric coefficient value received from the fourth coefficient input and the numeric data value received from the fourth data input; a first adder having a first adder output for providing a first sum, the first sum being the sum of the first product received from the first multiplier and the third product received from the third multiplier; a second adder having a second adder output for providing a second sum, the second sum being the sum of the second product received from the second multiplier and the fourth product received from the fourth multiplier; a third multiplexer having a third multiplexer output for providing a third multiplexer output data, the third multiplexer output data being the second sum received from the second adder when the mode signal is in the first state, and the numeric data value received from the first data input when the mode signal is in the second state; a third adder having a first output for providing a first output data, the first output data being the sum of the third multiplexer output data received from the third multiplexer and the first sum received from the first adder; a fourth adder having a second output for providing a second output data, the second output data being the sum of the numeric data value received by the second data input and the second sum received from the second adder; a first subtractor having a third output for providing a third output data, the third output data being the difference of the numeric data value received by the first data input and the first sum received from the first adder; and a second subtractor having a fourth output for providing a fourth output data, the fourth output data being the difference of the numeric data value received by the second data input and the second sum received from the second adder.