revise affine, yet again

how can this be so hard

the tougher self-tests in nip2/test/extras now all pass