code: def solve_linear_inequalities(
      equations, variables=None, ranges=None, deskew_range=False
  ):
      """Solve linear inequalities.
  
      Parameters
      ----------
      equations   : List[tvm.ir.PrimExpr] or IntConstraints
          The inequalities of the variables
      variables   : Optional[List[tvm.tir.Var]]
          The variables in the system.
      ranges      : Optional[Map[tvm.tir.Var, tvm.ir.Range]]
          The ranges of the variables.
      deskew_range: Optional[bool]
          Whether deskew the result ranges to be started from zero.
          Default false.
  
      Returns
      -------
      ret_ranges: IntConstraints or IntConstraintsTransform
          The result ranges for each variables.
          Constrains that cannot be transformed to Range will be stored in IntConstraints.relations.
          If deskew_range is set (=True), the result ranges will be deskewed to be started from zero.
          New variables are created accordingly therefore IntConstraintsTransform is returned.
      """
      solver = (
          _ffi_api.SolveInequalitiesDeskewRange
          if deskew_range
          else _ffi_api.SolveInequalitiesToRange
      )
      if isinstance(equations, IntConstraints):
          assert variables is None
          assert ranges is None
          return solver(equations)
      return solver(variables, ranges, equations)
  
file_path: tvm/python/tvm/arith/int_solver.py
imports: import tvm._ffi
  from tvm.runtime import Object
  from .None import _ffi_api
label_desc: Use image node_id 2 for calling a global function with example usage: solve_linear_inequalities(equations, variables, ranges, deskew_range) and returns: solver, solver