Reference guide: Overview#

General Remarks#

Creation via Static Methods#

To map more directly to the isl’s C interface, object creation in islpy is done through static methods instead of through constructors. These are marked β€˜(static)’ in each class’s overview section.

Documented vs. Non-documented Functionality#

Since islpy is automatically generated from the isl C headers, some of the functionality it exposes might be undocumented. Undocumented functionality might change or vanish without notice. β€˜Documented’ functionality is defined as whatever is mentioned in the isl manual. islpy will let you call undocumented functions, but you are doing so at your own risk.

Invalidation of Arguments#

You may notice that a few methods below say β€˜(becomes invalid)’. This has to do with an idiosyncrasy in isl’s interface that was retained at the Python level for efficiency. Such arguments will be deleted (by isl) upon entry to the called function. If you would like to retain access to that object, simply append a .copy() to that argument. (Note that you will notice if an object got deleted for you accidentally, as the next operation on it will simply fail with an exception.)

Integers#

Whenever an integer argument is required, islpy supports regular Python integers and Python long integers. It will return Python long integers.

Automatic Casts#

islpy will automatically perform the following upward casts in argument lists:

as well as casts contained in the transitive closure of this β€˜casting graph’.

Version Info#

islpy.version#
islpy.isl_version()#

Error Reporting#

exception islpy.Error#

Convenience#

islpy.make_zero_and_vars(set_vars, params=(), ctx=None)#
Parameters:
  • set_vars – an iterable of variable names, or a comma-separated string

  • params – an iterable of variable names, or a comma-separated string

Returns:

a dictionary from variable names (in set_vars and params) to PwAff instances that represent each of the variables. They key β€˜0’ is also include and represents a PwAff zero constant.

New in version 2016.1.1.

This function is intended to make it relatively easy to construct sets programmatically without resorting to string manipulation.

Usage example:

v = isl.make_zero_and_vars("i,j,k", "n")

myset = (
        v[0].le_set(v["i"] + v["j"])
        &
        (v["i"] + v["j"]).lt_set(v["n"])
        &
        (v[0].le_set(v["i"]))
        &
        (v["i"].le_set(13 + v["n"]))
        )
islpy.affs_from_space(space)#
Returns:

a dictionary from variable names (in set_vars and params) to PwAff instances that represent each of the variables in*space. They key β€˜0’ is also include and represents a PwAff zero constant.

New in version 2016.2.

This function is intended to make it relatively easy to construct sets programmatically without resorting to string manipulation.

Usage example:

s = isl.Set("[n] -> {[i,j,k]: 0<=i,j,k<n}")
v = isl.affs_from_space(s.space)

myset = (
        v[0].le_set(v["i"] + v["j"])
        &
        (v["i"] + v["j"]).lt_set(v["n"])
        &
        (v[0].le_set(v["i"]))
        &
        (v["i"].le_set(13 + v["n"]))
        )

Lifetime Helpers#

class islpy.ffi_callback_handle#

Some callbacks, notably those in AstBuild, need to outlive the function call to which they’re passed. These callback return a callback handle that must be kept alive until the callback is no longer needed.

Global Data#

islpy.DEFAULT_CONTEXT#

ISL objects being unpickled or initialized from strings will be instantiated within this Context.

New in version 2015.2.

Symbolic Constants#

class islpy.error#
abort = islpy._isl.error.abort#
alloc = islpy._isl.error.alloc#
internal = islpy._isl.error.internal#
invalid = islpy._isl.error.invalid#
none = islpy._isl.error.none#
quota = islpy._isl.error.quota#
unknown = islpy._isl.error.unknown#
unsupported = islpy._isl.error.unsupported#
class islpy.dim_type#
all = islpy._isl.dim_type.all#
cst = islpy._isl.dim_type.cst#
div = islpy._isl.dim_type.div#
in_ = islpy._isl.dim_type.in_#
out = islpy._isl.dim_type.set#
param = islpy._isl.dim_type.param#
set = islpy._isl.dim_type.set#
class islpy.fold#
list = islpy._isl.fold.list#
max = islpy._isl.fold.max#
min = islpy._isl.fold.min#
class islpy.format#
C = 4#
EXT_POLYLIB = 6#
ISL = 0#
LATEX = 5#
OMEGA = 3#
POLYLIB = 1#
POLYLIB_CONSTRAINTS = 2#
class islpy.yaml_style#
BLOCK = 0#
FLOW = 1#

Output#

class islpy.Printer#
__eq__(value, /)#

Return self==value.

__hash__()#

Return hash(self).

__ne__(value, /)#

Return self!=value.

ast_op_type_set_print_name(self, type, name)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

end_line(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

flush(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self)#
Parameters:

self – Printer

Returns:

Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_note(self, id)#
Parameters:
Returns:

Id

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_output_format(self)#
Parameters:

self – Printer

Returns:

int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_str(self)#
Parameters:

self – Printer

Returns:

string

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_yaml_style(self)#
Parameters:

self – Printer

Returns:

int

Warning

This function is not part of the officially public isl API. Use at your own risk.

has_note(self, id)#
Parameters:
Returns:

bool

Warning

This function is not part of the officially public isl API. Use at your own risk.

indent(self, indent)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • indent – int

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_aff(self, aff)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • aff – Aff

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_aff_list(self, list)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • list – AffList

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_ast_expr(self, expr)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • expr – AstExpr

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_ast_expr_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_ast_node(self, node)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • node – AstNode

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_ast_node_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_basic_map(self, bmap)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • bmap – BasicMap

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_basic_map_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_basic_set(self, bset)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • bset – BasicSet

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_basic_set_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_constraint(self, c)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_constraint_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_double(self, d)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • d – double

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_id(self, id)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • id – Id

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_id_list(self, list)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • list – IdList

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_int(self, i)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • i – int

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_local_space(self, ls)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_map(self, map)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • map – Map

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_map_list(self, list)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • list – MapList

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_multi_aff(self, maff)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • maff – MultiAff

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_multi_id(self, mi)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • mi – MultiId

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_multi_pw_aff(self, mpa)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_multi_union_pw_aff(self, mupa)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_multi_val(self, mv)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • mv – MultiVal

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_point(self, pnt)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • pnt – Point

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_aff(self, pwaff)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • pwaff – PwAff

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_aff_list(self, list)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • list – PwAffList

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_multi_aff(self, pma)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_multi_aff_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_qpolynomial(self, pwqp)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_qpolynomial_fold(self, pwf)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_qpolynomial_fold_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_pw_qpolynomial_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_qpolynomial(self, qp)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_qpolynomial_fold(self, fold)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_qpolynomial_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_schedule(self, schedule)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • schedule – Schedule

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_schedule_constraints(self, sc)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_schedule_node(self, node)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_set(self, map)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • map – Set

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_set_list(self, list)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • list – SetList

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_space(self, space)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • space – Space

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_str(self, s)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • s – string

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_access_info(self, access)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_flow(self, flow)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • flow – UnionFlow

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_map(self, umap)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • umap – UnionMap

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_map_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_pw_aff(self, upa)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_pw_aff_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_pw_multi_aff(self, upma)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_pw_multi_aff_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_pw_qpolynomial(self, upwqp)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_pw_qpolynomial_fold(self, upwf)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_set(self, uset)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • uset – UnionSet

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_union_set_list(self, list)#
Parameters:
Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_val(self, v)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • v – Val

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_val_list(self, list)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • list – ValList

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_vec(self, vec)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • vec – Vec

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_indent(self, indent)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • indent – int

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_indent_prefix(self, prefix)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • prefix – string

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_isl_int_width(self, width)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • width – int

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_note(self, id, note)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • id – Id

  • note – Id

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_output_format(self, output_format)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • output_format – int

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_prefix(self, prefix)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • prefix – string

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_suffix(self, suffix)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • suffix – string

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_yaml_style(self, yaml_style)#
Parameters:
  • self – Printer (mutated in-place) (mutated in-place)

  • yaml_style – int

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

start_line(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_str = <nanobind.nb_func object>#
yaml_end_mapping(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

yaml_end_sequence(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

yaml_next(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

yaml_start_mapping(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

yaml_start_sequence(self)#
Parameters:

self – Printer (mutated in-place) (mutated in-place)

Returns:

Printer (self)

Warning

This function is not part of the officially public isl API. Use at your own risk.

Helper functions#

islpy.align_spaces(obj, template, obj_bigger_ok=False, across_dim_types=None)#

Try to make the space in which obj lives the same as that of template by adding/matching named dimensions.

Parameters:

obj_bigger_ok – If True, no error is raised if the resulting obj has more dimensions than template.

islpy.align_two(obj1, obj2, across_dim_types=None)#

Align the spaces of two objects, potentially modifying both of them.

See also align_spaces().

Canonical Names for Internal Module#

class islpy._isl.stat#

A status result.

class islpy._isl.error#

See islpy.error.

class islpy._isl.dim_type#

See islpy.dim_type.

class islpy._isl.fold#

See islpy.fold.

class islpy._isl.format#

See islpy.format.

class islpy._isl.yaml_style#

See islpy.yaml_style.

class islpy._isl.Printer#

See islpy.Printer.