Okay.  I think this is the only point left after my coding spree today and Barney's edits elsewhere in the code.  Here are my comments:

We've already restricted ourselves in other ways to ```nx==ny```, so my inclination would be to change to use ```_cos``` and ```_sin``` and put a comment saying that if the rest of the code is generalized to allow ```nx!=ny```, this bit of code will have to change too.  As for the signs, I will go through it again tomorrow.