jacobian built and tested

routine compares very well against one constructed via finite
differences.