code: def _U_func_numpy(x1, y1, x2, y2):
      """
      Function which implements the U function from Bookstein paper
      :param x1: x coordinate of the first point
      :param y1: y coordinate of the first point
      :param x2: x coordinate of the second point
      :param y2: y coordinate of the second point
      :return: value of z
      """
  
      # Return zero if same point
      if x1 == x2 and y1 == y2:
          return 0.0
  
      # Calculate the squared Euclidean norm (r^2)
      r_2 = (x2 - x1) ** 2 + (y2 - y1) ** 2
  
      # Return the squared norm (r^2 * log r^2)
      return r_2 * np.log(r_2)
  
imports: import theano
  import theano.tensor
  import numpy
  from ..None import init
  from ..None import nonlinearities
  from ..utils import as_tuple, floatX, int_types
  from ..random import get_rng
  from .base import Layer, MergeLayer
  from theano.sandbox.rng_mrg import MRG_RandomStreams
label_desc: Use image node_id 8 for calling a global function with example usage: _U_func_numpy(x1, y1, x2, y2) and returns: unknown, int