Source file owl_computation_graph_sig.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# 1 "src/base/compute/owl_computation_graph_sig.ml"
(*
 * OWL - OCaml Scientific and Engineering Computing
 * Copyright (c) 2016-2019 Liang Wang <liang.wang@cl.cam.ac.uk>
 *)


module type Sig = sig

  module Optimiser : Owl_computation_optimiser_sig.Sig

  open Optimiser.Operator.Symbol.Shape.Type

  open Optimiser.Operator.Symbol.Shape.Type.Device


  (** {6 Type definition} *)

  type graph
  (** TODO *)


  (** {6 Core functions} *)

  val shape_or_value : t -> string
  (** TODO *)

  val graph_to_dot : graph -> string
  (** TODO *)

  val graph_to_trace : graph -> string
  (** TODO *)

  val save_graph : 'a -> string -> unit
  (** TODO *)

  val load_graph : string -> 'a * 'b
  (** TODO *)

  val collect_rvs : attr Owl_graph.node array -> attr Owl_graph.node array
  (** TODO *)

  val invalidate_rvs : graph -> unit
  (** TODO *)

  val make_graph : input:attr Owl_graph.node array -> output:attr Owl_graph.node array -> string -> graph
  (** TODO *)

  val get_inputs : graph -> attr Owl_graph.node array
  (** TODO *)

  val get_outputs : graph -> attr Owl_graph.node array
  (** TODO *)

  val get_node_arr_val : attr Owl_graph.node -> A.arr
  (** TODO *)

  val get_node_elt_val : attr Owl_graph.node -> A.elt
  (** TODO *)

  val set_node_arr_val : attr Owl_graph.node -> value -> unit
  (** TODO *)

  val set_node_elt_val : attr Owl_graph.node -> value -> unit
  (** TODO *)

  val is_iopair_safe : 'a Owl_graph.node -> 'a Owl_graph.node -> bool
  (** TODO *)

  val make_iopair : graph -> attr Owl_graph.node array -> attr Owl_graph.node array -> unit
  (** TODO *)

  val update_iopair : graph -> unit
  (** TODO *)

  val remove_unused_iopair : 'a Owl_graph.node array -> 'b array -> 'a Owl_graph.node array * 'b array
  (** TODO *)

  val init_inputs : (attr Owl_graph.node -> value) -> graph -> unit
  (** TODO *)

  val optimise : graph -> unit
  (** TODO *)


end