code: def local_log_pow(node):
      if node.op == tensor.log:
          (x,) = node.inputs
          if x.owner and x.owner.op == tensor.pow:
              base, exponent = x.owner.inputs
              # TODO: reason to be careful with dtypes?
              return [exponent * tensor.log(base)]
  
imports: from __future__ import absolute_import, print_function, division
  import logging
  from six import iteritems, integer_types
  from six.moves import xrange
  from theano.gof import Op, Apply
  from theano.tensor import DimShuffle, Dot
  from theano.tensor.blas import Dot22
  from theano import tensor
  import theano.tensor
  from theano.tensor.opt import register_stabilize, register_specialize, register_canonicalize
  from theano.gof import local_optimizer
  from theano.gof.opt import Optimizer
  from theano.tensor.nlinalg import MatrixInverse, matrix_inverse, extract_diag, trace, det
  from theano.tensor.slinalg import Cholesky, cholesky, Solve, solve, imported_scipy
label_desc: Use image node_id 15 for calling a global function with example usage: local_log_pow(node) and returns: list