package arrayjit

  1. Overview
  2. Docs

The code for operating on n-dimensional arrays.

module Lazy = Utils.Lazy
module Tn = Tnode
module Debug_runtime = Utils.Debug_runtime
val _get_local_debug_runtime : unit -> (module Minidebug_runtime.Debug_runtime)
type buffer =
  1. | Node of Tn.t
  2. | Merge_buffer of Tn.t
val sexp_of_buffer : buffer -> Sexplib0.Sexp.t
type fetch_op =
  1. | Constant of Base.float
  2. | Imported of Ops.global_identifier
  3. | Slice of {
    1. batch_idx : Indexing.static_symbol;
    2. sliced : Tn.t;
    }
  4. | Embed_symbol of Indexing.static_symbol

Resets a array by performing the specified computation or data fetching.

and t =
  1. | Noop
  2. | Seq of t * t
  3. | Block_comment of Base.string * t
    (*

    Same as the given code, with a comment.

    *)
  4. | Accum_binop of {
    1. initialize_neutral : Base.bool;
    2. accum : Ops.binop;
    3. op : Ops.binop;
    4. lhs : Tn.t;
    5. rhs1 : buffer;
    6. rhs2 : buffer;
    7. projections : Indexing.projections Lazy.t;
    }
  5. | Accum_unop of {
    1. initialize_neutral : Base.bool;
    2. accum : Ops.binop;
    3. op : Ops.unop;
    4. lhs : Tn.t;
    5. rhs : buffer;
    6. projections : Indexing.projections Lazy.t;
    }
  6. | Fetch of {
    1. array : Tn.t;
    2. fetch_op : fetch_op;
    3. dims : Base.int Base.array Lazy.t;
    }
val sexp_of_fetch_op : fetch_op -> Sexplib0.Sexp.t
val sexp_of_t : t -> Sexplib0.Sexp.t
val get_name_exn : t -> Base.String.t
val recurrent_nodes : t -> (Tn.t, Tn.comparator_witness) Base.Set.t
val sequential : t Base.List.t -> t
val to_low_level : t -> Low_level.t
val flatten : t -> t list
val is_noop : t -> bool
val get_ident_within_code : ?no_dots:bool -> t -> Tn.t -> Base.String.t
val fprint_hum : ?name:string -> ?static_indices:Indexing.static_symbol list -> unit -> Format.formatter -> t -> unit
val lower_proc : unoptim_ll_source:Format.formatter Base.Option.t -> ll_source:Format.formatter Base.Option.t -> cd_source:Format.formatter option -> name:Base.string -> Indexing.static_symbol Base.list -> t -> Low_level.optimized
OCaml

Innovation. Community. Security.