class_docstr: Base class for Post-Training Quantization transforms.
  
  Derived class needs to implement following two methods:
      - is_valid_op(op)
      - transform_op(op)
class_docstr_tok: ["Base","class","for","Post-Training","Quantization","transforms",".","Derived","class","needs","to","implement","following","two","methods",":","-","is_valid_op","(","op",")","-","transform_op","(","op",")"]
code: def _close_to_zero(cls, val, np_type):
      if np_type not in cls.type_eps:
          cls.type_eps[np_type] = np.finfo(np_type).eps
          cls.type_min[np_type] = np.nextafter(0.0, 1.0, dtype=np_type)
          cls.type_negmin[np_type] = np.nextafter(
              0.0, -1.0, dtype=np_type
          )
  
      return np.isclose(
          val, 0, atol=cls.type_min[np_type], rtol=cls.type_eps[np_type]
      )
  
imports: from abc import abstractmethod
  from enum import Enum
  from typing import Set, Text
  import numpy
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Operation, types
  from coremltools.converters.mil.mil.block import is_current_opset_version_compatible_with
  from coremltools.converters.mil.mil.ops.registry import SSAOpRegistry
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.program import Program
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
label_desc: Use image node_id 5 for calling the AbstractQuantizationPass obj's underlying member method code with example usage: obj._close_to_zero(cls, val, np_type) and returns: np