code: def _group_symbols(self) -> None:
      symbol_set = {}
      for symbol in self._symbols.values():
          op_name = symbol.op_name
          symbol_set[op_name] = symbol
  
      # Group functions together by renaming.
      renaming = {
          "llabs": "abs",
          "acosf": "acos",
          "acoshf": "acosh",
          "dadd_rd": "add_rd",
          "fadd_rd": "add_rd",
          "dadd_rn": "add_rn",
          "fadd_rn": "add_rn",
          "dadd_ru": "add_ru",
          "fadd_ru": "add_ru",
          "dadd_rz": "add_rz",
          "fadd_rz": "add_rz",
          "asinf": "asin",
          "asinhf": "asinh",
          "atanf": "atan",
          "atan2f": "atan2",
          "atanhf": "atanh",
          "brevll": "brev",
          "cbrtf": "cbrt",
          "ceilf": "ceil",
          "clzll": "clz",
          "copysignf": "copysign",
          "cosf": "cos",
          "coshf": "cosh",
          "cospif": "cospi",
          "cyl_bessel_i0f": "cyl_bessel_i0",
          "cyl_bessel_i1f": "cyl_bessel_i1",
          "fdiv_rd": "div_rd",
          "ddiv_rd": "div_rd",
          "fdiv_rn": "div_rn",
          "ddiv_rn": "div_rn",
          "fdiv_ru": "div_ru",
          "ddiv_ru": "div_ru",
          "fdiv_rz": "div_rz",
          "ddiv_rz": "div_rz",
          "erff": "erf",
          "erfcf": "erfc",
          "erfcinvf": "erfcinv",
          "erfcxf": "erfcx",
          "erfinvf": "erfinv",
          "expf": "exp",
          "exp10f": "exp10",
          "exp2f": "exp2",
          "expm1f": "expm1",
          "fabsf": "abs",
          "fabs": "abs",
          "fast_fdividef": "fast_dividef",
          "fdimf": "fdim",
          "ffsll": "ffs",
          "floorf": "floor",
          "fmaf": "fma",
          "fmaf_rd": "fma_rd",
          "fmaf_rn": "fma_rn",
          "fmaf_ru": "fma_ru",
          "fmaf_rz": "fma_rz",
          "fmodf": "fmod",
          "uhadd": "hadd",
          "hypotf": "hypot",
          "ilogbf": "ilogb",
          "isinff": "isinf",
          "isinfd": "isinf",
          "isnanf": "isnan",
          "isnand": "isnan",
          "j0f": "j0",
          "j1f": "j1",
          "jnf": "jn",
          "ldexpf": "ldexp",
          "lgammaf": "lgamma",
          "llrintf": "llrint",
          "llroundf": "llround",
          "logf": "log",
          "log10f": "log10",
          "log1pf": "log1p",
          "log2f": "log2",
          "logbf": "logb",
          "umax": "max",
          "llmax": "max",
          "ullmax": "max",
          "fmaxf": "max",
          "fmax": "max",
          "umin": "min",
          "llmin": "min",
          "ullmin": "min",
          "fminf": "min",
          "fmin": "min",
          "dmul_rd": "mul_rd",
          "fmul_rd": "mul_rd",
          "dmul_rn": "mul_rn",
          "fmul_rn": "mul_rn",
          "dmul_ru": "mul_ru",
          "fmul_ru": "mul_ru",
          "dmul_rz": "mul_rz",
          "fmul_rz": "mul_rz",
          "umul24": "mul24",
          "umulhi": "mulhi",
          "mul64hi": "mulhi",
          "umul64hi": "mulhi",
          "nearbyintf": "nearbyint",
          "nextafterf": "nextafter",
          "norm3df": "norm3d",
          "norm4df": "norm4d",
          "normcdff": "normcdf",
          "normcdfinvf": "normcdfinv",
          "popcll": "popc",
          "powif": "pow",
          "powi": "pow",
          "powf": "pow",
          "rcbrtf": "rcbrt",
          "frcp_rd": "rcp_rd",
          "drcp_rd": "rcp_rd",
          "frcp_rn": "rcp_rn",
          "drcp_rn": "rcp_rn",
          "frcp_ru": "rcp_ru",
          "drcp_ru": "rcp_ru",
          "frcp_rz": "rcp_rz",
          "drcp_rz": "rcp_rz",
          "remainderf": "remainder",
          "urhadd": "rhadd",
          "rhypotf": "rhypot",
          "rintf": "rint",
          "rnorm3df": "rnorm3d",
          "rnorm4df": "rnorm4d",
          "roundf": "round",
          "rsqrtf": "rsqrt",
          "frsqrt_rn": "rsqrt_rn",
          "usad": "sad",
          "scalbnf": "scalbn",
          "signbitf": "signbit",
          "signbitd": "signbit",
          "sinf": "sin",
          "sinhf": "sinh",
          "sinpif": "sinpi",
          "sqrtf": "sqrt",
          "fsqrt_rd": "sqrt_rd",
          "dsqrt_rd": "sqrt_rd",
          "fsqrt_rn": "sqrt_rn",
          "dsqrt_rn": "sqrt_rn",
          "fsqrt_ru": "sqrt_ru",
          "dsqrt_ru": "sqrt_ru",
          "fsqrt_rz": "sqrt_rz",
          "dsqrt_rz": "sqrt_rz",
          "fsub_rd": "sub_rd",
          "dsub_rd": "sub_rd",
          "fsub_rn": "sub_rn",
          "dsub_rn": "sub_rn",
          "fsub_ru": "sub_ru",
          "dsub_ru": "sub_ru",
          "fsub_rz": "sub_rz",
          "dsub_rz": "sub_rz",
          "tanf": "tan",
          "tanhf": "tanh",
          "tgammaf": "tgamma",
          "truncf": "trunc",
          "y0f": "y0",
          "y1f": "y1",
          "ynf": "yn",
      }
  
      for symbol in self._symbols.values():
          op_name = symbol.op_name
          if op_name in renaming:
              op_name = renaming[op_name]
              symbol._op_name = op_name
          if op_name in self._symbol_groups:
              self._symbol_groups[op_name].append(symbol)
          else:
              self._symbol_groups[op_name] = [symbol]
  
imports: import argparse
  import subprocess
  from abc import ABC, abstractmethod
  from typing import Dict, List, Optional
label_desc: Use image node_id 3 for calling the Libdevice obj's underlying member method code with example usage: obj._group_symbols() without return types