owl icon indicating copy to clipboard operation
owl copied to clipboard

Refine Owl type signatures

Open ryanrhymes opened this issue 5 years ago • 1 comments

Current type signatures deviate from owl's original design rationale, and blur the functional boundary of various modules. We need to refile the type signature to better reflect owl's architecture.

ryanrhymes avatar Dec 25 '19 16:12 ryanrhymes

Calvin has done an excellent job of separating the Mat and Linalg aliases from the Ndarray modules. I think perhaps one thing that could be improved is the positioning/naming of the owl_algodiff_primal_ops module.

The original design is that CGraph functor stack takes Ndarray as input and produces the CGraph_engine type, and the Algdiff functor can take either Ndarray or CGraph Engine as input. Now after the change, a CGraph functor takes owl_algodiff_primal_ops module as input , and the Algdiff functor can take either owl_algodiff_primal_ops or CGraph engine as input, whereas owl_algodiff_primal_ops is a wrapper that aggregates Ndarray/Mat/Linalg functions.

According to this structure, I'm thinking that owl_algodiff_primal_ops as a standalone module could be separated out from Algodiff and renamed, in both owl-core and owl-base.

jzstark avatar Dec 25 '19 17:12 jzstark