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
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 : Tn.t;
    6. rhs2 : Tn.t;
    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 : Tn.t;
    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 is_noop : t -> bool
val get_name_exn : t -> Base.String.t
val recurrent_nodes : t -> (Tn.t, Tn.comparator_witness) Base.Set.t
val remove_updates : Tn.t -> t -> t
val sequential : t Base.List.t -> t
val to_low_level : t -> Low_level.t
val flatten : t -> t list
val fprint_hum : ?ident_style: [< `Heuristic_ocannl | `Name_and_label | `Name_only Heuristic_ocannl ] -> ?name:string -> ?static_indices:Indexing.static_symbol list -> unit -> Format.formatter -> t -> unit
OCaml

Innovation. Community. Security.