Owl_computation_graph.Makemodule Optimiser = Optimisertype graph = {mutable name : string;mutable input : Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array;mutable output : Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array;mutable iopair : (Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node
* Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node)
array;mutable iosafe : bool array;mutable random : Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array;mutable htbl : (string,
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node)
Stdlib.Hashtbl.t;mutable device : Optimiser.Operator.Symbol.Shape.Type.Device.device;}val shape_or_value : Optimiser.Operator.Symbol.Shape.Type.t -> stringval graph_to_dot : graph -> stringval graph_to_trace : graph -> stringval collect_rvs :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node arrayval invalidate_rvs : graph -> unitval make_graph :
input:Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
output:Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
string ->
graphval get_inputs :
graph ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node arrayval get_outputs :
graph ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node arrayval get_node_arr_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.A.arrval get_node_elt_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.A.eltval set_node_arr_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.value ->
unitval set_node_elt_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.value ->
unitval is_iopair_safe : 'a Owl_graph.node -> 'b Owl_graph.node -> boolval make_iopair :
graph ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
unitval update_iopair : graph -> unitval remove_unused_iopair :
'a Owl_graph.node array ->
'b array ->
'a Owl_graph.node array * 'b arrayval init_inputs :
(Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.value) ->
graph ->
unitval optimise : graph -> unit