def _find_vector_rotation(a, b):
 R = np.eye(3)
 v = np.cross(a, b)
 if np.allclose(v, 0.0):
  return R
 s = np.dot(v, v)
 c = np.dot(a, b)
 vx = _skew_symmetric_cross(v)
 R += (vx + ((np.dot(vx, vx) * (1 - c)) / s))
 return R

def _find_vector_rotation ( a , b ) : R = np . eye ( 3 ) v = np . cross ( a , b ) if np . allclose ( v , 0.0 ) : return R s = np . dot ( v , v ) c = np . dot ( a , b ) vx = _skew_symmetric_cross ( v ) R += ( vx + ( ( np . dot ( vx , vx ) * ( 1 - c ) ) / s ) ) return R
find the rotation matrix that maps unit vector a to b .