As far as I'm concerned that's a "known" confusion, or at least I thought I knew about it. It's still confusing though.  This function was basically solely written to be an independent point of comparison for a unit test.  To make the writing of the code as independent as possible I didn't even look at Joe's code again, nor did I look at Kaiser &Squires, but I instead based the calculation on the most recent expression of the result that I had seen, namely that here http://arxiv.org/pdf/1303.1806v1.pdf (equation 7).

Then, in writing the unit tests I found I needed to drop the factor of 1/2 invoked by Ludo et al. in order to get consistency with my kappa map, and with some proto-tests done using the NFWHalo.  But the sign stayed put.

So I find there are four conventions in this mess:

* A: The one written in Kaiser & Squires, which if naively implemented in the `kappaKaiserSquires(g1, g2)` would not, I believe, pass the unit test.
* B: The one written in `kappaKaiserSquires(g1, g2)` which has an overall sign difference, but passes the unit test.
* C: The one Joe originally coded in the depths of the lensing engine, which has a mysterious sign flip in one or another of `g1`/`g2` only.
* D: The convention in the paper above that is out by a factor of 2 wrt B, and out by a factor of -2 wrt A.

To top it all, B & C produce consistent output :)  You have to laugh...