High speed read of bipolar signal, -> ADC (LTC1605)

Well, either I interpreted your code wrongly, or you did mine.
The z in the transferfunction is not some value but the "Z transform".

Imagine the following problem;

I need to store data from the past in some container/array;
Some "error", which stores values of the past 7 values of error
Some "u", which stores values of the past 7 values of u.

Define k to be the current sample. u(k) therefore will be the output of my equation.
Define (k-7) to be the data from a variable 7 samples ago. error(k-7) should be the value of error, 7 samples ago.

Now here comes the "fun";
To calculate u(k), I need to read all values, from error(k-7) to error(k) and u(k-7) to u(k-1). I then need to multiply those values by a certain set of 13 fixed values, say 7.7662, 2.34632 etc.
After that, I need to sum those values to get to u(k), which is send to the DAC.

Before the next calculation loop begins, I need to shift every "past value" one instance further away to the past. I only need to store the last x values so when the sample is too old, I can discard it.

I think the use of an array should be ideal. Is there a (dis)advantage of using 2 arrays for each value over storing the values in 1 "big" (14 value) array?

And inevitably, there's the float/integer issue again. Since I don't want to waste previous run-time, I was thinking of scaling up all values by 10, 100 of 1000 so that I can use 2byte integers for my calculations instead of the 4 byte floats. Will that help with the speed or is the difference negligible? I would think the calculation time would double, but I'm not the expert.