Reference: Supporting functionality¶

namedisl.core.align_obj(named_obj: NamedIslObjectT, space: Space, *, allow_cross_dim_type: bool = False, obj_larger_than_space_ok: bool = False) → NamedIslObjectT[source]¶
namedisl.core.align_two(named_obj1: NamedIslObjectT, named_obj2: NamedIslObjectT2) → tuple[NamedIslObjectT, NamedIslObjectT2][source]¶

Returns a version of both passed objects so that both live in a shared Space. For namedisl, this is semantically irrelevant, but it can prevent repeated internal alignment operations.

class namedisl.Error¶
final class namedisl.DimType(*values)[source]¶
param = 1¶
in_ = 2¶
out = 3¶
as_isl() → dim_type[source]¶
class namedisl.Space(dimtype_to_names: Mapping[DimType, Sequence[str]])[source]¶
dimtype_to_names: Mapping[DimType, Sequence[str]]¶
static from_names(*, param: Collection[str] | None = None, in_: Collection[str] | None = None, out: Collection[str] | None = None) → Space[source]¶
static from_isl(obj: BasicSet | Set | BasicMap | Map | Aff | PwAff | QPolynomial | PwQPolynomial | MultiAff | PwMultiAff | Constraint, dim_types: Collection[DimType]) → Space[source]¶
__eq__(other: object) → bool[source]¶

Return self==value.

__hash__() → int[source]¶

Return hash(self).

order_equals(other: Space) → bool[source]¶
semantically_equals(other: Space) → bool[source]¶
__contains__(name: str) → bool[source]¶
name_to_dim¶
dimtype_to_name_sets¶
names¶
dim_names(dim_type: DimType) → frozenset[str][source]¶
param_names¶
in_names¶
set_names¶
out_names¶
dim(dim_type: DimType) → int[source]¶
names_except(dim_type: Collection[DimType]) → set[str][source]¶
move_dim_type(source: DimType, target: DimType) → Space[source]¶
swap_dim_types(dt1: DimType, dt2: DimType) → Space[source]¶
drop_dim_type(dt: DimType) → Space[source]¶
with_empty_dim_type(dt: DimType) → Space[source]¶
as_expr_space() → Space[source]¶
as_set_space() → Space[source]¶
as_isl(ctx: Context | None = None) → Space[source]¶
as_isl_set_space(ctx: Context | None = None) → Space[source]¶
class namedisl.Cache[source]¶
class namedisl.align_two(named_obj1: NamedIslObjectT, named_obj2: NamedIslObjectT2)[source]¶

Returns a version of both passed objects so that both live in a shared Space. For namedisl, this is semantically irrelevant, but it can prevent repeated internal alignment operations.