ctn-waterloo/nengo — pull request #322 by drasmuss (2014-04-10 21:02:01+00:00)
Title: Added filter to direct connections where filter < dt.

Fix for Issue #319.

The problem was that if you have a direct connection with no filter you wound up with cycles in the op graph (generally we use the decoder ProdUpdate or the filter ProdUpdate operation to terminate the operation cycle in a given timestep).

I went with a compromise in fixing this. If the user sets filter < dt, in the past we were omitting the filter operation. I have changed this now so that we leave the filter in (with filter==dt). This is designed to catch the case that the user does not really intend to omit the filter, so would be pretty surprised at the cycle problem.

If the user sets `filter=None`, I don't add anything, so you can still get cycles. This means that you don't end up with an extra timestep delay (for things like Passthrough nodes). In most cases this won't result in any cycles anyway, because there will be some other operations to break the cycle downstream. I figure since the user has to explicitly choose to set `filter=None`, we can assume that that is really what they want, and leave the consequences (possible cycles) in their hands.