code: def dot(l, r):
      """Return a symbolic matrix/dot product between l and r"""
      rval = NotImplemented
      e0, e1 = None, None
  
      if rval == NotImplemented and hasattr(l, "__dot__"):
          try:
              rval = l.__dot__(r)
          except Exception as e0:
              rval = NotImplemented
      if rval == NotImplemented and hasattr(r, "__rdot__"):
          try:
              rval = r.__rdot__(l)
          except Exception as e1:
              rval = NotImplemented
      if rval == NotImplemented:
          raise NotImplementedError(
              "Dot failed for the following reasons:", (e0, e1)
          )
      return rval
  
imports: from __future__ import absolute_import, print_function, division
  import logging
  import os
  import sys
  import warnings
  from theano.version import version
  from six import PY3
  from theano.configdefaults import config
  from theano.configparser import change_flags
  from theano.gof import CLinker, OpWiseCLinker, DualLinker, Linker, LocalLinker, PerformLinker, Container, InconsistencyError, FunctionGraph, Apply, Variable, Constant, Op, OpenMPOp, opt, toolbox, Type, Generic, generic, object2, utils
  from theano.compile import SymbolicInput, In, SymbolicOutput, Out, Mode, predefined_modes, predefined_linkers, predefined_optimizers, FunctionMaker, function, function_dump, OpFromGraph, ProfileStats, Param, shared, as_op
  from theano.misc.safe_asarray import _asarray
  from theano.printing import pprint, pp
  from theano.scan_module import scan, map, reduce, foldl, foldr, clone, scan_checkpoints
  from theano.updates import OrderedUpdates
  from theano.gradient import Rop, Lop, grad, subgraph_grad
  import theano.tests
  import numpy
label_desc: Use image node_id 3 for calling a global function with example usage: dot(l, r) and returns: rval