code: def compile_with_symbol(self, func, theano_args=None, owner=None):
          '''Compile the function with theano symbols'''
          if theano_args is None:
              theano_args = []
  
          # initialize the shared buffers
          upc = UpdateCollector()
  
          # get the output symbols and other Theano options
          theano_ret = func(*theano_args) if owner is None \
              else func(owner, *theano_args)
  
          # integrate the information of updates, givens and the other options
          out = copy.copy(self.default_options)
          out['outputs'] = theano_ret
          out['updates'] = upc.extract_updates()
  
          # compile the function
          return theano.function(theano_args, **outf compile_with_symbol(self, func, theano_args=None, owner=None):
          '''Compile the function with theano symbols'''
          if theano_args is None:
              theano_args = []
  
          # initialize the shared buffers
          upc = UpdateCollector()
  
          # get the output symbols and other Theano options
          theano_ret = func(*theano_args) if owner is None \
              else func(owner, *theano_args)
  
          # integrate the information of updates, givens and the other options
          out = copy.copy(self.default_options)
          out['outputs'] = theano_ret
          out['updates'] = upc.extract_updates()
  
          # compile the function
          return theano.function(theano_args, **out)
docs: Compile the function with theano symbols