The range constructor. Parameters ---------- dom : Union[Range, List[PrimExpr]] The domain. Returns ------- res : Range The Range.
(dom: ir.Range | list[PrimExpr])
| 991 | |
| 992 | |
| 993 | def _as_range(dom: ir.Range | list[PrimExpr]) -> ir.Range: |
| 994 | """The range constructor. |
| 995 | |
| 996 | Parameters |
| 997 | ---------- |
| 998 | dom : Union[Range, List[PrimExpr]] |
| 999 | The domain. |
| 1000 | |
| 1001 | Returns |
| 1002 | ------- |
| 1003 | res : Range |
| 1004 | The Range. |
| 1005 | """ |
| 1006 | if isinstance(dom, ir.Range): |
| 1007 | return dom |
| 1008 | if isinstance(dom, list | tuple): |
| 1009 | from tvm.arith import Analyzer # pylint: disable=import-outside-toplevel |
| 1010 | |
| 1011 | extent = Analyzer().simplify(dom[1] - dom[0]) |
| 1012 | if isinstance(extent, tir.IntImm): |
| 1013 | return ir.Range.from_min_extent(dom[0], extent) |
| 1014 | return ir.Range(dom[0], dom[1]) |
| 1015 | if hasattr(dom, "dtype"): |
| 1016 | return ir.Range(IntImm(dom.dtype, 0), dom) |
| 1017 | return ir.Range(0, dom) |
| 1018 | |
| 1019 | |
| 1020 | class axis: # pylint: disable=invalid-name |