class_docstr: We can have different set of variables to represent the same integer constraints.
     For example, the following two constrains are equivalent,
     {a + b = 0 | a >= 0, b >= 0} and
     {m - n = 0 | m >= 0, n <= 0}
     This data structure represents the transformation
     between two equivalent integer constraints.
     In the above example,
     src        : {a + b = 0 | a >= 0, b >= 0}
     dst        : {m - n = 0 | m >= 0, n <= 0}
     src_to_dst : {a -> m, b -> -n}
     dst_to_src : {m -> a, n -> -b}
  
  Parameters
  ----------
  src : arith.IntConstraints
      source integer constraints, e.g., {a + b = 0 | a >= 0, b >= 0}
  dst : arith.IntConstraints
      integer constraints equivalent to the source, e.g., {m - n = 0 | m >= 0, n <= 0}
  src_to_dst : Map[tvm.tir.Var, tvm.ir.PrimExpr]
      mapping from variables in the src to the variables in the dst,
              e.g., {a -> m, b -> -n}
  dst_to_src : Map[tvm.tir.Var, tvm.ir.PrimExpr]
      mapping from variables in the dst to the variables in the src,
      e.g., {m -> a, n -> -b}
class_docstr_tok: ["We","can","have","different","set","of","variables","to","represent","the","same","integer","constraints",".","For","example",",","the","following","two","constrains","are","equivalent",",","{","a","+","b","=","0","|","a",">","=","0",",","b",">","=","0","}","and","{","m","-","n","=","0","|","m",">","=","0",",","n","<","=","0","}","This","data","structure","represents","the","transformation","between","two","equivalent","integer","constraints",".","In","the","above","example",",","src",":","{","a","+","b","=","0","|","a",">","=","0",",","b",">","=","0","}","dst",":","{","m","-","n","=","0","|","m",">","=","0",",","n","<","=","0","}","src_to_dst",":","{","a","-",">","m",",","b","-",">","-n","}","dst_to_src",":","{","m","-",">","a",",","n","-",">","-b","}","Parameters","--","--","--","--","--","src",":","arith.IntConstraints","source","integer","constraints",",","e.g.",",","{","a","+","b","=","0","|","a",">","=","0",",","b",">","=","0","}","dst",":","arith.IntConstraints","integer","constraints","equivalent","to","the","source",",","e.g.",",","{","m","-","n","=","0","|","m",">","=","0",",","n","<","=","0","}","src_to_dst",":","Map","[","tvm.tir.Var",",","tvm.ir.PrimExpr","]","mapping","from","variables","in","the","src","to","the","variables","in","the","dst",",","e.g.",",","{","a","-",">","m",",","b","-",">","-n","}","dst_to_src",":","Map","[","tvm.tir.Var",",","tvm.ir.PrimExpr","]","mapping","from","variables","in","the","dst","to","the","variables","in","the","src",",","e.g.",",","{","m","-",">","a",",","n","-",">","-b","}"]
code: def __init__(self, src, dst, src_to_dst, dst_to_src):
      self.__init_handle_by_constructor__(
          _ffi_api.IntConstraintsTransform,
          src,
          dst,
          src_to_dst,
          dst_to_src,
      )
  
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 to create a new IntConstraintsTransform object from inherited base classes: Object with example: obj = IntConstraintsTransform(src, dst, src_to_dst, dst_to_src)