code: def _slow_znl(Y, X, P, n, l):
      def _polar(r, theta):
          x = r * cos(theta)
          y = r * sin(theta)
          return 1.0 * x + 1.0j * y
  
      v = 0.0 + 0.0j
  
      def _factorial(n):
          if n == 0:
              return 1.0
          return n * _factorial(n - 1)
  
      y, x = Y[0], X[0]
      for x, y, p in zip(X, Y, P):
          Vnl = 0.0
          for m in range(int((n - l) // 2) + 1):
              Vnl += (
                  (-1.0) ** m
                  * _factorial(n - m)
                  / (
                      _factorial(m)
                      * _factorial((n - 2 * m + l) // 2)
                      * _factorial((n - 2 * m - l) // 2)
                  )
                  * (
                      sqrt(x * x + y * y) ** (n - 2 * m)
                      * _polar(1.0, l * atan2(y, x))
                  )
              )
          v += p * conjugate(Vnl)
      v *= (n + 1) / pi
      return v
  
file_path: mahotas/mahotas/tests/test_zernike.py
imports: import numpy
  from mahotas.features import zernike_moments
  from mahotas.center_of_mass import center_of_mass
  import mahotas
  from math import atan2, ceil
  from numpy import cos, sin, conjugate, pi, sqrt
label_desc: Use image node_id 1 for calling a global function with example usage: _slow_znl(Y, X, P, n, l) and returns: v, unknown, unknown, int