code: def register_qnn_unary_op_legalize(op_name, floating_point_func):
      """Register unary qnn op for legalization via table lookup op."""
  
      def legalize_qnn_unary_op(attrs, inputs, types):
          return create_integer_lookup_op(
              input_arg=inputs[0],
              floating_point_func=floating_point_func,
              in_scale=inputs[1],
              in_zero_point=inputs[2],
              out_scale=inputs[3],
              out_zero_point=inputs[4],
              in_dtype=types[0].dtype,
              out_dtype=types[0].dtype,
          )
  
      return reg.register_qnn_legalize(op_name, legalize_qnn_unary_op)
  
imports: import numpy
  from scipy import special
  import tvm
  from tvm import relay
  from tvm._ffi.base import TVMError
  from tvm.relay.qnn.op.canonicalizations import create_integer_lookup_op
  from ....target.x86 import target_has_features
  from ....topi.utils import is_target
  from ..None import op
label_desc: Use image node_id 4 for calling a global function with example usage: register_qnn_unary_op_legalize(op_name, floating_point_func) and returns: reg, create_integer_lookup_op