Ir.IndexingSymbols and projections used to lower tensor indexing.
val sexp_of_symbol : symbol -> Sexplib0.Sexp.tval symbol_of_sexp : Sexplib0.Sexp.t -> symbolval hash_fold_symbol :
Ppx_hash_lib.Std.Hash.state ->
symbol ->
Ppx_hash_lib.Std.Hash.stateval hash_symbol : symbol -> Ppx_hash_lib.Std.Hash.hash_valueval symbol : Base.int -> symbolval is_symbol : symbol -> Base.boolval symbol_val : symbol -> Base.int Base.optionmodule Variants_of_symbol : sig ... endmodule Symbol : sig ... endval get_symbol : Base.unit -> symbolval symbol_ident : symbol -> Base.stringval sexp_of_environment :
('a -> Sexplib0.Sexp.t) ->
'a environment ->
Sexplib0.Sexp.tval environment_of_sexp :
(Sexplib0.Sexp.t -> 'a) ->
Sexplib0.Sexp.t ->
'a environmenttype static_symbol = {static_symbol : symbol;mutable static_range : Base.int Base.option;mutable used_as_extent : Base.bool;mutable used_as_slice : Base.bool;}val compare_static_symbol : static_symbol -> static_symbol -> Base.intval equal_static_symbol : static_symbol -> static_symbol -> Base.boolval sexp_of_static_symbol : static_symbol -> Sexplib0.Sexp.tval static_symbol_of_sexp : Sexplib0.Sexp.t -> static_symbolval hash_fold_static_symbol :
Ppx_hash_lib.Std.Hash.state ->
static_symbol ->
Ppx_hash_lib.Std.Hash.stateval hash_static_symbol : static_symbol -> Ppx_hash_lib.Std.Hash.hash_valueval sexp_of_bindings :
('a -> Sexplib0.Sexp.t) ->
'a bindings ->
Sexplib0.Sexp.tval bound_symbols : 'a bindings -> static_symbol Base.listtype ('r, 'idcs, 'p1, 'p2) variadic = | Result of 'r| Param_idx of Base.int Base.ref
* (Base.int -> 'r, Base.int -> 'idcs, 'p1, 'p2) variadic| Param_1 of 'p1 Base.option Base.ref * ('p1 -> 'r, 'idcs, 'p1, 'p2) variadic| Param_2 of 'p2 Base.option Base.ref * ('p2 -> 'r, 'idcs, 'p1, 'p2) variadic| Param_2f : ('p2f ->
'p2)
* 'p2f Base.option Base.ref
* ('p2 -> 'r, 'idcs, 'p1, 'p2) variadic -> ('r, 'idcs, 'p1, 'p2) variadictype unit_bindings = (Base.unit -> Base.unit) bindingsval sexp_of_unit_bindings : unit_bindings -> Sexplib0.Sexp.ttype lowered_bindings = (static_symbol, Base.int Base.ref) Base.List.Assoc.tval sexp_of_lowered_bindings : lowered_bindings -> Sexplib0.Sexp.tval apply : ('r, 'idcs, 'p1, 'p2) variadic -> 'rval lowered_bindings :
'a bindings ->
('b, 'a, 'p1, 'p2) variadic ->
lowered_bindingsval find_exn : lowered_bindings -> static_symbol -> Base.int Base.refval get_static_symbol :
?static_range:Base.int ->
(Base.int -> 'a) bindings ->
static_symbol * 'a bindingsval validate_bound_value :
?width64:Base.bool ->
static_symbol ->
Base.int ->
Base.unitval validate_lowered_bindings :
?width64:Base.bool ->
lowered_bindings ->
Base.unitval compare_axis_index : axis_index -> axis_index -> Base.intval equal_axis_index : axis_index -> axis_index -> Base.boolval sexp_of_axis_index : axis_index -> Sexplib0.Sexp.tval axis_index_of_sexp : Sexplib0.Sexp.t -> axis_indexval axis_index_mentions_symbol : symbol -> axis_index -> Base.boolval axis_index_mentions_any : symbol Base.list -> axis_index -> Base.booltype str_osym_map =
(Base.string, symbol Base.option, Base.String.comparator_witness) Base.Map.tval sexp_of_projections_debug : projections_debug -> Sexplib0.Sexp.tval projections_debug_of_sexp : Sexplib0.Sexp.t -> projections_debugtype component = (Base.int * symbol) Base.listval sexp_of_component : component -> Sexplib0.Sexp.tval component_of_sexp : Sexplib0.Sexp.t -> componenttype projections = {components : component Base.array;lhs_dims : Base.int Base.array;rhs_dims : Base.int Base.array Base.array;project_lhs : axis_index Base.array;project_rhs : axis_index Base.array Base.array;extent_syms : (symbol Base.option * static_symbol) Base.list;debug_info : projections_debug;}val compare_projections : projections -> projections -> Base.intval equal_projections : projections -> projections -> Base.boolval sexp_of_projections : projections -> Sexplib0.Sexp.tval projections_of_sexp : Sexplib0.Sexp.t -> projectionsval all_iterators : projections -> symbol Base.listval iterator_sizes : projections -> Base.int Base.Map.M(Symbol).tval affine_injective :
symbol_range:(symbol -> Base.int) ->
axis_index Base.array ->
Base.boolval prod_project_for :
projections ->
dims:Base.int Base.array ->
axis_index Base.arrayval reflect_projection :
dims:Base.int Base.array ->
projection:axis_index Base.array ->
axis_indextype variable_ref = {ref_label : Base.string;mutable solved_dim : Base.int Base.option;mutable solved_sym : static_symbol Base.option;}val sexp_of_variable_ref : variable_ref -> Sexplib0.Sexp.tval equal_variable_ref : variable_ref -> variable_ref -> Base.boolmodule Doc_helpers : sig ... end