code: def expand_tf_lstm(prog):
      """
      Expand tf_lstm_block_cell to fine-grained SSA ops following:
  
      xh = [x, h_prev]
      [i, ci, f, o] = xh * w + b
      f = f + forget_bias
      if not use_peephole:
        wci = wcf = wco = 0
      i = sigmoid(cs_prev .* wci + i)
      f = sigmoid(cs_prev .* wcf + f)
      ci = tanh(ci)
      cs = ci .* i + cs_prev .* f
      cs = clip(cs, cell_clip)
      o = sigmoid(cs * wco + o)
      co = tanh(cs)
      h = co .* o
  
      Inputs:
  
          prog: Program
      """
      for f_name, f in prog.functions.items():
          expand_tf_lstm_helper(f)
  
file_path: turicreate/src/external/coremltools_wrap/coremltools/coremltools/converters/mil/frontend/tensorflow/ssa_passes/expand_tf_lstm.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import types
  import numpy
  import logging
label_desc: Use image node_id 1 for calling a global function with example usage: expand_tf_lstm(prog) without return types