code: def test_let_statement_simple(target_precision):
      """A 'simple' let statement example.
  
      Noticeable is the mutation of the bound variable types.
      """
      var1 = relay.var("var1", shape=[1, 20])
      var2 = relay.var("var2", shape=[1, 20])
  
      data = relay.var("data", shape=[1, 20])
      weight = relay.var("weight", shape=[20, 20])
  
      r1 = var1 + var1
  
      r2 = var2 + var2
      let2 = relay.Let(var2, relay.nn.dense(r1, weight, units=20), r2)
      let1 = relay.Let(
          var1, relay.nn.dense(data, weight, units=20), let2
      )
  
      mod = tvm.IRModule.from_expr(let1)
      mod_params = {
          "data": np.random.uniform(-1, 1, size=[1, 20]).astype(
              "float32"
          ),
          "weight": np.random.uniform(-1, 1, size=[20, 20]).astype(
              "float32"
          ),
      }
      output_mod = verify_mixed_precision_output_close(
          mod,
          mod_params,
          mixed_precision_dtype=target_precision,
          atol=0.05,
          rtol=0.15,
      )
  
      # Construct expected structure
      var1 = relay.var("var1", shape=[1, 20], dtype=target_precision)
      var2 = relay.var("var2", shape=[1, 20], dtype=target_precision)
      data = relay.cast(
          relay.var("data", shape=[1, 20]), target_precision
      )
      weight = relay.cast(
          relay.var("weight", shape=[20, 20]), target_precision
      )
      r1 = var1 + var1
      r2 = var2 + var2
      let2 = relay.Let(
          var2,
          relay.nn.dense(
              r1, weight, units=20, out_dtype=target_precision
          ),
          r2,
      )
      let1 = relay.Let(
          var1,
          relay.nn.dense(
              data, weight, units=20, out_dtype=target_precision
          ),
          let2,
      )
      expected_mod = tvm.IRModule.from_expr(let1)
      expected_mod = InferType()(expected_mod)
  
      assert tvm.ir.structural_equal(expected_mod, output_mod)
  
imports: from typing import Any, Dict, List
  import numpy
  import pytest
  import tvm
  from tvm import relay
  from tvm.relay.testing import lstm
  from tvm.relay.transform import InferType, ToMixedPrecision, mixed_precision
label_desc: Use image node_id 14 for calling a global function with example usage: test_let_statement_simple(target_precision) without return types