 cdef double xx, yy, zz

 xx = H[0] * x + H[1] * y + H[2]
 yy = H[3] * x + H[4] * y + H[5]
 zz = H[6] * x + H[7] * y + H[8]

 x_[0] = xx / zz
 y_[0] = yy / zz


 def _warp_fast(cnp.ndarray image, cnp.ndarray H, output_shape=None,
 int order=1, mode='constant', double cval=0):
 """Projective transformation (homography).

 Perform a projective transformation (homography) of a
 floating point image, using interpolation.

 For each pixel, given its homogeneous coordinate :math:`\mathbf{x}
 = [x, y, 1]^T`, its target position is calculated by multiplying
 with the given matrix, :math:`H`, to give :math:`H \mathbf{x}`.
 E.g., to rotate by theta degrees clockwise, the matrix should be::