code: def solve_linear_equations(equations, variables=None, ranges=None):
      """Solve linear equations.
  
      Parameters
      ----------
      equations: List[tvm.ir.PrimExpr] or IntConstraints
          The equations 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.
  
      Returns
      -------
      int_constraints_transform : IntConstraintsTransform
          New integer constraints, with less variables (if the problem is NOT of full rank),
          or no variable (if the problem is of full rank),
          or an empty integer constraints (if the problem is unsolvable).
          It also provides the ranges of the variables in the new system,
          as well as inequalities inferred from the problem.
          You can get the mapping from the original variables to the solution via
          int_constraints_transform.src_to_dst.
      """
      if isinstance(equations, IntConstraints):
          return _ffi_api.SolveLinearEquations(equations)
      return _ffi_api.SolveLinearEquations(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 1 for calling a global function with example usage: solve_linear_equations(equations, variables, ranges) and returns: _ffi_api, _ffi_api