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
87
88
89
90
# 1 "src/base/compute/owl_computation_graph_sig.ml"
module type Sig = sig
module Optimiser : Owl_computation_optimiser_sig.Sig
open Optimiser.Operator.Symbol.Shape.Type
open Optimiser.Operator.Symbol.Shape.Type.Device
(** {5 Type definition} *)
type graph
(** TODO *)
(** {5 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