123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430# 1 "src/base/algodiff/owl_algodiff_ops_sig.ml"(*
* OWL - OCaml Scientific and Engineering Computing
* Copyright (c) 2016-2020 Liang Wang <liang.wang@cl.cam.ac.uk>
*)openOwl_typesmoduletypeSig=sigtypettypeelttypearrtypeop(** {6 Ops Builder } *)moduleBuilder:Owl_algodiff_ops_builder_sig.Sigwithtypet:=tandtypeelt:=eltandtypearr:=arrandtypeop:=op(** {6 Supported Maths functions} *)moduleMaths:sigval(+):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)val(-):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)val(*):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)val(/):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)val(*@):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)val(**):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valadd:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsub:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmul:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdiv:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdot:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valpow:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valatan2:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmin2:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmax2:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valcross_entropy:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valinv:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valneg:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valabs:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsignum:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valfloor:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valceil:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valround:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsqr:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsqrt:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallog:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallog2:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallog10:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valexp:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsin:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valcos:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtan:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsinh:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valcosh:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtanh:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valasin:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valacos:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valatan:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valasinh:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valacosh:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valatanh:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsum':t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsum:?axis:int->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsum_reduce:?axis:intarray->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmean:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtranspose:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vall1norm':t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vall2norm':t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vall2norm_sqr':t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsigmoid:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valrelu:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdawsn:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsoftplus:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsoftsign:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsoftmax:?axis:int->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valreshape:t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valflatten:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valget_item:t->int->int->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valget_row:t->int->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valconcat:axis:int->t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsplit:axis:int->intarray->t->tarray(** Refer to :doc:`owl_dense_ndarray_generic` *)valof_arrays:tarrayarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valto_arrays:t->tarrayarray(** Refer to :doc:`owl_dense_ndarray_generic` *)valconcatenate:axis:int->tarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valget_slice:intlistlist->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valset_slice:intlistlist->t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdiag:?k:int->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdiagm:?k:int->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtrace:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtriu:?k:int->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtril:?k:int->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)end(** {6 Supported Linalg functions} *)moduleLinalg:sigvalinv:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallogdet:t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valchol:?upper:bool->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valqr:t->t*t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallq:t->t*t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsvd:?thin:bool->t->t*t*t(** Refer to :doc:`owl_dense_ndarray_generic` *)valsylvester:t->t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallyapunov:t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdiscrete_lyapunov:?solver:[`default|`bilinear|`direct]->t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)val(/@):t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)vallinsolve:?trans:bool->?typ:[`n|`u|`l]->t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valcare:?diag_r:bool->t->t->t->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)end(** {6 Supported Neural Network functions} *)moduleNN:sigvaldropout:?rate:float->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valconv1d:?padding:padding->t->t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valconv2d:?padding:padding->t->t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valconv3d:?padding:padding->t->t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdilated_conv1d:?padding:padding->t->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdilated_conv2d:?padding:padding->t->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valdilated_conv3d:?padding:padding->t->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtranspose_conv1d:?padding:padding->t->t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtranspose_conv2d:?padding:padding->t->t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valtranspose_conv3d:?padding:padding->t->t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmax_pool1d:padding->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmax_pool2d:padding->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valmax_pool3d:padding->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valavg_pool1d:padding->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valavg_pool2d:padding->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valavg_pool3d:padding->t->intarray->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valupsampling2d:t->intarray->t(** Refer to :doc:`owl_dense_ndarray_generic` *)valpad:?v:elt->intlistlist->t->t(** Refer to :doc:`owl_dense_ndarray_generic` *)end(* Simple wrappers of matrix and ndarray module, so you don't have to pack and unpack
stuff all the time. Some operations just interface to those already defined in the
Maths module. *)(** {6 Supported Mat functions} *)moduleMat:sigvalempty:int->int->tvalzeros:int->int->tvaleye:int->tvalones:int->int->tvaluniform:?a:elt->?b:elt->int->int->tvalgaussian:?mu:elt->?sigma:elt->int->int->tvalshape:t->int*intvalnumel:t->intvalrow_num:t->intvalcol_num:t->intvalreset:t->unitvalreshape:int->int->t->tvalget:t->int->int->tvalset:t->int->int->t->tvalrow:t->int->tvalmean:t->tvaladd:t->t->tvalsub:t->t->tvalmul:t->t->tvaldiv:t->t->tvaldot:t->t->tvalmap_by_row:(t->t)->t->tvalof_arrays:eltarrayarray->tvalinit_2d:int->int->(int->int->t)->tvalprint:t->unitend(** {6 Supported Arr functions} *)moduleArr:sigvalempty:intarray->tvalzeros:intarray->tvalones:intarray->tvaluniform:?a:elt->?b:elt->intarray->tvalgaussian:?mu:elt->?sigma:elt->intarray->tvalshape:t->intarrayvalnumel:t->intvalreset:t->unitvalreshape:t->intarray->tvaladd:t->t->tvalsub:t->t->tvalmul:t->t->tvaldiv:t->t->tvaldot:t->t->tendend