text: inline void observation_equation_perspective_camera_rodrigues_wc(Eigen::Matrix<double, 2, 1> &delta, double fx, double fy, double cx, double cy, double px, double py, double pz, double sx, double sy, double sz, double tie_px, double tie_py, double tie_pz, double u_kp, double v_kp)
  {delta.coeffRef(0,0) = -cx - 1.0*fx*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) + u_kp;
  delta.coeffRef(1,0) = -cy - 1.0*fy*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) + v_kp;
  }
  inline void observation_equation_perspective_camera_rodrigues_wc_jacobian(Eigen::Matrix<double, 2, 9, Eigen::RowMajor> &j, double fx, double fy, double cx, double cy, double px, double py, double pz, double sx, double sy, double sz, double tie_px, double tie_py, double tie_pz)
  {j.coeffRef(0,0) = -1.0*fx*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) - 1.0*fx*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2);
  j.coeffRef(0,1) = -1.0*fx*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(0,2) = -1.0*fx*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(0,3) = -1.0*fx*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(-px*(2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - py*(pow(sx, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sx, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - pz*(2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_px*(-2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_py*(-pow(sx, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sx, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_pz*(-2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(px*(2*pow(sx, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(2*pow(sx, 2)*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(-2*pow(sx, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-2*pow(sx, 2)*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(-2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(0,4) = -1.0*fx*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(-px*(2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - pow(sy, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - py*(sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - pz*(2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_px*(-2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + pow(sy, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_py*(-sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_pz*(-2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(px*(2*pow(sx, 2)*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(2*sx*pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) + pz*(2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + pow(sy, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(-2*pow(sx, 2)*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-2*sx*pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) + tie_pz*(-2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - pow(sy, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(0,5) = -1.0*fx*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(-px*(2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) - py*(sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - pz*(2*pow(sz, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sz, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_px*(-2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) - tie_py*(-sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_pz*(-2*pow(sz, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sz, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(px*(2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - pow(sz, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) + tie_px*(-2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + pow(sz, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(-2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(0,6) = -1.0*fx*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) - 1.0*fx*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2);
  j.coeffRef(0,7) = -1.0*fx*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(0,8) = -1.0*fx*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(px*(-pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + py*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(pow(sx, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_py*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fx*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(1,0) = -1.0*fy*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) - 1.0*fy*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2);
  j.coeffRef(1,1) = -1.0*fy*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fy*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(1,2) = -1.0*fy*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) - 1.0*fy*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2);
  j.coeffRef(1,3) = -1.0*fy*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(-px*(2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - py*(pow(sx, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sx, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - pz*(2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_px*(-2*pow(sx, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_py*(-pow(sx, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sx, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_pz*(-2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fy*(px*(2*pow(sx, 2)*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sx, 2)*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(2*sx*pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sx, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sx, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(-2*pow(sx, 2)*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sx, 2)*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-2*sx*pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sx, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sx, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(1,4) = -1.0*fy*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(-px*(2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - pow(sy, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - py*(sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - pz*(2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_px*(-2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + pow(sy, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_py*(-sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_pz*(-2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fy*(px*(2*sx*pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) + py*(2*pow(sy, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sy, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(-2*sx*pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sy, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) + tie_py*(-2*pow(sy, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sy, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sy*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(1,5) = -1.0*fy*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(-px*(2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) - py*(sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - pz*(2*pow(sz, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sz, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_px*(-2*sx*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sx*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0)) - tie_py*(-sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) - tie_pz*(-2*pow(sz, 3)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sz, 3)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fy*(px*(2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + pow(sz, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + 2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) - sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(-2*sx*sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sx*sy*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - pow(sz, 2)*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-2*pow(sy, 2)*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + pow(sy, 2)*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(sx*sz*cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sx*sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) - 2*sy*pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 2) + sy*pow(sz, 2)*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/pow(pow(sx, 2) + pow(sy, 2) + pow(sz, 2), 3.0/2.0) + sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(1,6) = -1.0*fy*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) - 1.0*fy*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2);
  j.coeffRef(1,7) = -1.0*fy*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2) - 1.0*fy*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))));
  j.coeffRef(1,8) = -1.0*fy*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))) - 1.0*fy*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))*(px*(-sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(-pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + pz*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_px*(sx*sy*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sz*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(pow(sy, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_pz*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/pow(px*(-sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + py*(sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + pz*(-pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))) + tie_px*(sx*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_py*(-sx*sin(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))/sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + sy*sz*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))) + tie_pz*(pow(sz, 2)*(1.0 - cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2))))/(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)) + cos(sqrt(pow(sx, 2) + pow(sy, 2) + pow(sz, 2)))), 2);
  }