code: def fmap(order, aij, bij, x, y):
      
  
      u = np.zeros_like(x)
      v = np.zeros_like(y)
  
      k = 0
      for i in range(order + 1):
          for j in range(i + 1):
              u += aij[k] * (x ** (i - j)) * (y ** j)
              v += bij[k] * (x ** (i - j)) * (y ** j)
              k += 1
  
      return u, v
docs: Evaluate the 2D polynomial transformation.
  
      u = sum[i=0:order]( sum[j=0:j]( a_ij * x**(i - j) * y**j ))
      v = sum[i=0:order]( sum[j=0:j]( b_ij * x**(i - j) * y**j ))
  
      Parameters
      ----------
      order : int
          Order of the polynomial transformation.
      aij : numpy array
          Polynomial coefficents corresponding to a_ij.
      bij : numpy array
          Polynomial coefficents corresponding to b_ij.
      x : numpy array or float
          X coordinate values where the transformation is computed. Note
          that these values correspond to array indices.
      y : numpy array or float
          Y coordinate values where the transformation is computed. Note
          that these values correspond to array indices.
  
      Returns
      -------
      u : numpy array or float
          U coordinate values.
      v : numpy array or float
          V coordinate values.