12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061# 1 "src/base/compute/owl_computation_engine.ml"(*
* OWL - OCaml Scientific and Engineering Computing
* Copyright (c) 2016-2018 Liang Wang <liang.wang@cl.cam.ac.uk>
*)(**
This functor takes a device as its input, then it generates the computation
graph module without flattening the module hierarchy.
*)moduleMake_Graph(Device:Owl_types_computation_device.Sig)=structincludeOwl_computation_graph.Make(Owl_computation_optimiser.Make(Owl_computation_operator.Make(Owl_computation_symbol.Make(Owl_computation_shape.Make(Owl_computation_type.Make(Device))))))end(**
This functor takes an engine as its input, flattens all its embedded modules
into the same level. Therefore the generated module has all the functions
sit at the top level, then can be passed to other functors like Algodiff.
*)moduleFlatten(Engine:Owl_types_computation_engine.Sig)=structincludeEngineincludeGraphincludeOptimiserincludeOperatorincludeSymbolincludeShapeincludeTypeincludeDeviceletnumber=A.numberend