123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727# 1 "src/base/compute/owl_computation_operator_sig.ml"(*
* OWL - OCaml Scientific and Engineering Computing
* Copyright (c) 2016-2020 Liang Wang <liang.wang@cl.cam.ac.uk>
*)openOwl_types(* Functor of making the symbols of a computation graph. *)moduletypeSig=sigmoduleSymbol:Owl_computation_symbol_sig.SigopenSymbol.Shape.Type(** {5 Vectorised functions} *)valnoop:arr->arr(** TODO *)valempty:intarray->arr(** TODO *)valzeros:intarray->arr(** TODO *)valones:intarray->arr(** TODO *)valcreate:intarray->elt->arr(** TODO *)valsequential:?a:elt->?step:elt->intarray->arr(** TODO *)valuniform:?a:elt->?b:elt->intarray->arr(** TODO *)valgaussian:?mu:elt->?sigma:elt->intarray->arr(** TODO *)valbernoulli:?p:elt->intarray->arr(** TODO *)valinit:intarray->(int->elt)->arr(** TODO *)valinit_nd:intarray->(intarray->elt)->arr(** TODO *)valshape:arr->intarray(** TODO *)valnumel:arr->int(** TODO *)valget:arr->intarray->elt(** TODO *)valset:arr->intarray->elt->unit(** TODO *)valget_slice:intlistlist->arr->arr(** TODO *)valset_slice:intlistlist->arr->arr->unit(** TODO *)valcopy:arr->arr(** TODO *)valcopy_:out:'a->'b->'c(** TODO *)valreset:arr->unit(** TODO *)valreshape:arr->intarray->arr(** TODO *)valreverse:arr->arr(** TODO *)valtile:arr->intarray->arr(** TODO *)valrepeat:arr->intarray->arr(** TODO *)valpad:?v:elt->intlistlist->arr->arr(** TODO *)valexpand:?hi:bool->arr->int->arr(** TODO *)valsqueeze:?axis:intarray->arr->arr(** TODO *)valconcatenate:?axis:int->arrarray->arr(** TODO *)valstack:?axis:int->arrarray->arr(** TODO *)valconcat:axis:int->arr->arr->arr(** TODO *)valsplit:?axis:int->'a->'b->'c(** TODO *)valdraw:?axis:int->arr->int->arr*'aarray(** TODO *)valmap:(elt->elt)->arr->arr(** TODO *)valfold:?axis:int->(elt->elt->elt)->elt->arr->arr(** TODO *)valscan:?axis:int->(elt->elt->elt)->arr->arr(** TODO *)valone_hot:int->arr->arr(** TODO *)valdelay:(Device.A.arr->Device.A.arr)->arr->arr(**
``delay f x`` returns ``f x``. It allows to use a function that is not tracked
by the computation graph and delay its evaluation. The output must have the
same shape as the input.
*)valdelay_array:intarray->(Device.A.arrarray->Device.A.arr)->arrarray->arr(**
``delay_array out_shape f x`` works in the same way as ``delay`` but is applied
on an array of ndarrays. Needs the shape of the output as an argument.
*)vallazy_print:?max_row:int->?max_col:int->?header:bool->?fmt:(Device.A.elt->string)->arr->arr(**
``lazy_print x`` prints the output of ``x`` when it is evaluated. Is implemented
as an identity node. For information about the optional parameters, refer to the
``print`` function of the ``Ndarray`` module.
*)valprint:?max_row:'a->?max_col:'b->?header:'c->?fmt:'d->'e->unit(** TODO *)valabs:arr->arr(** TODO *)valneg:arr->arr(** TODO *)valfloor:arr->arr(** TODO *)valceil:arr->arr(** TODO *)valround:arr->arr(** TODO *)valsqr:arr->arr(** TODO *)valsqrt:arr->arr(** TODO *)vallog:arr->arr(** TODO *)vallog2:arr->arr(** TODO *)vallog10:arr->arr(** TODO *)valexp:arr->arr(** TODO *)valsin:arr->arr(** TODO *)valcos:arr->arr(** TODO *)valtan:arr->arr(** TODO *)valsinh:arr->arr(** TODO *)valcosh:arr->arr(** TODO *)valtanh:arr->arr(** TODO *)valasin:arr->arr(** TODO *)valacos:arr->arr(** TODO *)valatan:arr->arr(** TODO *)valasinh:arr->arr(** TODO *)valacosh:arr->arr(** TODO *)valatanh:arr->arr(** TODO *)valmin:?axis:int->?keep_dims:bool->arr->arr(** TODO *)valmax:?axis:int->?keep_dims:bool->arr->arr(** TODO *)valsum:?axis:int->?keep_dims:bool->arr->arr(** TODO *)valsum_reduce:?axis:intarray->arr->arr(** TODO *)valsignum:arr->arr(** TODO *)valsigmoid:arr->arr(** TODO *)valrelu:arr->arr(** TODO *)valdawsn:arr->arr(** TODO *)valmin':arr->elt(** TODO *)valmax':arr->elt(** TODO *)valsum':arr->elt(** TODO *)vallog_sum_exp':arr->elt(** TODO *)vallog_sum_exp:?axis:int->?keep_dims:bool->arr->arr(** TODO *)vall1norm':arr->elt(** TODO *)vall2norm':arr->elt(** TODO *)vall2norm_sqr':arr->elt(** TODO *)valclip_by_value:?amin:elt->?amax:elt->arr->arr(** TODO *)valclip_by_l2norm:elt->arr->arr(** TODO *)valpow:arr->arr->arr(** TODO *)valscalar_pow:elt->arr->arr(** TODO *)valpow_scalar:arr->elt->arr(** TODO *)valatan2:arr->arr->arr(** TODO *)valscalar_atan2:elt->arr->arr(** TODO *)valatan2_scalar:arr->elt->arr(** TODO *)valhypot:arr->arr->arr(** TODO *)valmin2:arr->arr->arr(** TODO *)valmax2:arr->arr->arr(** TODO *)valadd:arr->arr->arr(** TODO *)valsub:arr->arr->arr(** TODO *)valmul:arr->arr->arr(** TODO *)valdiv:arr->arr->arr(** TODO *)valadd_scalar:arr->elt->arr(** TODO *)valsub_scalar:arr->elt->arr(** TODO *)valmul_scalar:arr->elt->arr(** TODO *)valdiv_scalar:arr->elt->arr(** TODO *)valscalar_add:elt->arr->arr(** TODO *)valscalar_sub:elt->arr->arr(** TODO *)valscalar_mul:elt->arr->arr(** TODO *)valscalar_div:elt->arr->arr(** TODO *)valfma:arr->arr->arr->arr(** TODO *)valelt_equal:arr->arr->arr(** TODO *)valelt_not_equal:arr->arr->arr(** TODO *)valelt_less:arr->arr->arr(** TODO *)valelt_greater:arr->arr->arr(** TODO *)valelt_less_equal:arr->arr->arr(** TODO *)valelt_greater_equal:arr->arr->arr(** TODO *)valelt_equal_scalar:arr->elt->arr(** TODO *)valelt_not_equal_scalar:arr->elt->arr(** TODO *)valelt_less_scalar:arr->elt->arr(** TODO *)valelt_greater_scalar:arr->elt->arr(** TODO *)valelt_less_equal_scalar:arr->elt->arr(** TODO *)valelt_greater_equal_scalar:arr->elt->arr(** TODO *)valconv1d:?padding:Owl_types.padding->arr->arr->intarray->arr(** TODO *)valconv2d:?padding:Owl_types.padding->arr->arr->intarray->arr(** TODO *)valconv3d:?padding:Owl_types.padding->arr->arr->intarray->arr(** TODO *)valtranspose_conv1d:?padding:Owl_types.padding->arr->arr->intarray->arr(** TODO *)valtranspose_conv2d:?padding:Owl_types.padding->arr->arr->intarray->arr(** TODO *)valtranspose_conv3d:?padding:Owl_types.padding->arr->arr->intarray->arr(** TODO *)valdilated_conv1d:?padding:Owl_types.padding->arr->arr->intarray->intarray->arr(** TODO *)valdilated_conv2d:?padding:Owl_types.padding->arr->arr->intarray->intarray->arr(** TODO *)valdilated_conv3d:?padding:Owl_types.padding->arr->arr->intarray->intarray->arr(** TODO *)valmax_pool1d:?padding:Owl_types.padding->arr->intarray->intarray->arr(** TODO *)valmax_pool2d:?padding:Owl_types.padding->arr->intarray->intarray->arr(** TODO *)valmax_pool3d:?padding:Owl_types.padding->arr->intarray->intarray->arr(** TODO *)valavg_pool1d:?padding:Owl_types.padding->arr->intarray->intarray->arr(** TODO *)valavg_pool2d:?padding:Owl_types.padding->arr->intarray->intarray->arr(** TODO *)valavg_pool3d:?padding:Owl_types.padding->arr->intarray->intarray->arr(** TODO *)valupsampling2d:arr->intarray->arr(** TODO *)valconv1d_backward_input:arr->arr->intarray->arr->arr(** TODO *)valconv1d_backward_kernel:arr->arr->intarray->arr->arr(** TODO *)valconv2d_backward_input:arr->arr->intarray->arr->arr(** TODO *)valconv2d_backward_kernel:arr->arr->intarray->arr->arr(** TODO *)valconv3d_backward_input:arr->arr->intarray->arr->arr(** TODO *)valconv3d_backward_kernel:arr->arr->intarray->arr->arr(** TODO *)valtranspose_conv1d_backward_input:arr->arr->intarray->arr->arr(** TODO *)valtranspose_conv1d_backward_kernel:arr->arr->intarray->arr->arr(** TODO *)valtranspose_conv2d_backward_input:arr->arr->intarray->arr->arr(** TODO *)valtranspose_conv2d_backward_kernel:arr->arr->intarray->arr->arr(** TODO *)valtranspose_conv3d_backward_input:arr->arr->intarray->arr->arr(** TODO *)valtranspose_conv3d_backward_kernel:arr->arr->intarray->arr->arr(** TODO *)valdilated_conv1d_backward_input:arr->arr->intarray->intarray->arr->arr(** TODO *)valdilated_conv1d_backward_kernel:arr->arr->intarray->intarray->arr->arr(** TODO *)valdilated_conv2d_backward_input:arr->arr->intarray->intarray->arr->arr(** TODO *)valdilated_conv2d_backward_kernel:arr->arr->intarray->intarray->arr->arr(** TODO *)valdilated_conv3d_backward_input:arr->arr->intarray->intarray->arr->arr(** TODO *)valdilated_conv3d_backward_kernel:arr->arr->intarray->intarray->arr->arr(** TODO *)valmax_pool1d_backward:padding->arr->intarray->intarray->arr->arr(** TODO *)valmax_pool2d_backward:padding->arr->intarray->intarray->arr->arr(** TODO *)valmax_pool3d_backward:padding->arr->intarray->intarray->arr->arr(** TODO *)valavg_pool1d_backward:padding->arr->intarray->intarray->arr->arr(** TODO *)valavg_pool2d_backward:padding->arr->intarray->intarray->arr->arr(** TODO *)valavg_pool3d_backward:padding->arr->intarray->intarray->arr->arr(** TODO *)valupsampling2d_backward:arr->intarray->arr->arr(** TODO *)valrow_num:arr->int(** TODO *)valcol_num:arr->int(** TODO *)valrow:arr->'a->arr(** TODO *)valrows:arr->intarray->arr(** TODO *)valcopy_row_to:arr->'a->'b->unit(** TODO *)valcopy_col_to:arr->'a->'b->unit(** TODO *)valdiag:?k:int->arr->arr(** TODO *)valtrace:arr->elt(** TODO *)valdot:arr->arr->arr(** TODO *)valtranspose:?axis:intarray->arr->arr(** TODO *)valto_rows:arr->'aarray(** TODO *)valof_rows:arrarray->arr(** TODO *)valto_cols:arr->'aarray(** TODO *)valof_cols:arrarray->arr(** TODO *)valof_array:eltarray->intarray->arr(** TODO *)valof_arrays:eltarrayarray->arr(** TODO *)valto_arrays:arr->eltarrayarray(** TODO *)(** {5 Scalar functions} *)moduleScalar:sigvaladd:elt->elt->elt(** TODO *)valsub:elt->elt->elt(** TODO *)valmul:elt->elt->elt(** TODO *)valdiv:elt->elt->elt(** TODO *)valpow:elt->elt->elt(** TODO *)valatan2:elt->elt->elt(** TODO *)valabs:elt->elt(** TODO *)valneg:elt->elt(** TODO *)valsqr:elt->elt(** TODO *)valsqrt:elt->elt(** TODO *)valexp:elt->elt(** TODO *)vallog:elt->elt(** TODO *)vallog2:elt->elt(** TODO *)vallog10:elt->elt(** TODO *)valsignum:elt->elt(** TODO *)valfloor:elt->elt(** TODO *)valceil:elt->elt(** TODO *)valround:elt->elt(** TODO *)valsin:elt->elt(** TODO *)valcos:elt->elt(** TODO *)valtan:elt->elt(** TODO *)valsinh:elt->elt(** TODO *)valcosh:elt->elt(** TODO *)valtanh:elt->elt(** TODO *)valasin:elt->elt(** TODO *)valacos:elt->elt(** TODO *)valatan:elt->elt(** TODO *)valasinh:elt->elt(** TODO *)valacosh:elt->elt(** TODO *)valatanh:elt->elt(** TODO *)valrelu:elt->elt(** TODO *)valdawsn:elt->elt(** TODO *)valsigmoid:elt->elt(** TODO *)endmoduleMat:sigvaleye:int->arr(** TODO *)valdiagm:?k:int->arr->arr(** TODO *)valtriu:?k:int->arr->arr(** TODO *)valtril:?k:int->arr->arr(** TODO *)endmoduleLinalg:sigvalinv:arr->arr(** TODO *)vallogdet:arr->elt(** TODO *)valchol:?upper:bool->arr->arr(** TODO *)valqr:arr->arr*arr(** TODO *)vallq:arr->arr*arr(** TODO *)valsvd:?thin:bool->arr->arr*arr*arr(** TODO *)valsylvester:arr->arr->arr->arr(** TODO *)vallyapunov:arr->arr->arr(** TODO *)valdiscrete_lyapunov:?solver:[`default|`bilinear|`direct]->arr->arr->arr(** TODO *)vallinsolve:?trans:bool->?typ:[`n|`u|`l]->arr->arr->arr(** TODO *)valcare:?diag_r:bool->arr->arr->arr->arr->arr(** TODO *)endend