Dumb question: history

How does ‘history’ relate to i/o data indices? I assume you cannot have
an index < zero.

Say your work function gets common i/o arrays

const float *in = (const float *) input_items[0];
float *out = (float *) output_items[0];

and you set_history(ntaps), I guess that means you get ( noutput_items +
ntaps ) for the number of intput items and can produce noutput_items
output.

Now I have two streams, one is pass-thru (symbol tags) and the other is
the data to be filtered and gets delayed by ntaps.

The filtered stream is processed by:

d_equalizer->filter (in, in_tags, out, noutput_items);

where out[x] is the processed sample in[x + ntaps] (?).

So to keep the symbol tags aligned, should we use:

for (int i = 0; i < noutput_items; i++)
out_tags[i] = in_tags[i + d_offset];

d_offset = ntaps - npretaps - 1

Is that the correct thinking? size of out[] is noutput_items and size of
in[] is noutput_items + history ?? history = ntaps, and is > ntaps