parameters: (self, cres)
return_statement: return dtypenums, ptr, env
docstring: Returns (dtype numbers, function ptr, EnvironmentObject)
docstring_summary: Returns (dtype numbers, function ptr, EnvironmentObject)
docstring_tokens: Returns ( dtype numbers function ptr EnvironmentObject )
function: def build(self, cres):
          """
          Returns (dtype numbers, function ptr, EnvironmentObject)
          """
          # Buider wrapper for ufunc entry point
          signature = cres.signature
          info = build_gufunc_wrapper(
              self.py_func, cres, self.sin, self.sout,
              cache=self.cache, is_parfors=False,
          )
  
          env = info.env
          ptr = info.library.get_pointer_to_function(info.name)
          # Get dtypes
          dtypenums = []
          for a in signature.args:
              if isinstance(a, types.Array):
                  ty = a.dtype
              else:
                  ty = a
              dtypenums.append(as_dtype(ty).num)
          return dtypenums, ptr, env
function_tokens: def build ( self , cres ) : # Buider wrapper for ufunc entry point signature = cres . signature info = build_gufunc_wrapper ( self . py_func , cres , self . sin , self . sout , cache = self . cache , is_parfors = False , ) env = info . env ptr = info . library . get_pointer_to_function ( info . name ) # Get dtypes dtypenums = [ ] for a in signature . args : if isinstance ( a , types . Array ) : ty = a . dtype else : ty = a dtypenums . append ( as_dtype ( ty ) . num ) return dtypenums , ptr , env