Module Owl_dense_ndarray_c

type elt = Stdlib.Complex.t
type arr = ( Stdlib.Complex.t, Stdlib.Bigarray.complex32_elt, Stdlib.Bigarray.c_layout ) Stdlib.Bigarray.Genarray.t
type cast_arr = ( float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout ) Stdlib.Bigarray.Genarray.t
include Owl_dense_ndarray_intf.Common with type elt := elt and type arr := arr
include Owl_base_dense_ndarray_intf.Common with type elt := elt with type arr := arr
val empty : int array -> arr
val zeros : int array -> arr
val ones : int array -> arr
val create : int array -> elt -> arr
val init : int array -> ( int -> elt ) -> arr
val init_nd : int array -> ( int array -> elt ) -> arr
val sequential : ?a:elt -> ?step:elt -> int array -> arr
val uniform : ?a:elt -> ?b:elt -> int array -> arr
val gaussian : ?mu:elt -> ?sigma:elt -> int array -> arr
val bernoulli : ?p:float -> int array -> arr
val shape : arr -> int array
val numel : arr -> int
val strides : arr -> int array

Refer to :doc:`owl_dense_ndarray_generic`

val slice_size : arr -> int array

Refer to :doc:`owl_dense_ndarray_generic`

val get : arr -> int array -> elt
val set : arr -> int array -> elt -> unit
val get_slice : int list list -> arr -> arr
val set_slice : int list list -> arr -> arr -> unit
val copy : arr -> arr
val copy_ : out:arr -> arr -> unit
val reset : arr -> unit
val reshape : arr -> int array -> arr
val flatten : arr -> arr
val reverse : arr -> arr
val tile : arr -> int array -> arr
val repeat : arr -> int array -> arr
val concatenate : ?axis:int -> arr array -> arr
val stack : ?axis:int -> arr array -> arr
val squeeze : ?axis:int array -> arr -> arr
val expand : ?hi:bool -> arr -> int -> arr
val split : ?axis:int -> int array -> arr -> arr array
val draw : ?axis:int -> arr -> int -> arr * int array
val pad : ?v:elt -> int list list -> arr -> arr
val one_hot : int -> arr -> arr
val print : ?max_row:int -> ?max_col:int -> ?header:bool -> ?fmt:( elt -> string ) -> arr -> unit
val abs : arr -> arr
val neg : arr -> arr
val floor : arr -> arr
val ceil : arr -> arr
val round : arr -> arr
val sqr : arr -> arr
val sqrt : arr -> arr
val log : arr -> arr
val log2 : arr -> arr
val log10 : arr -> arr
val exp : arr -> arr
val sin : arr -> arr
val cos : arr -> arr
val tan : arr -> arr
val sinh : arr -> arr
val cosh : arr -> arr
val tanh : arr -> arr
val asin : arr -> arr
val acos : arr -> arr
val atan : arr -> arr
val asinh : arr -> arr
val acosh : arr -> arr
val atanh : arr -> arr
val min : ?axis:int -> ?keep_dims:bool -> arr -> arr
val max : ?axis:int -> ?keep_dims:bool -> arr -> arr
val sum : ?axis:int -> ?keep_dims:bool -> arr -> arr
val sum_reduce : ?axis:int array -> arr -> arr
val min' : arr -> elt
val max' : arr -> elt
val pow : arr -> arr -> arr
val scalar_pow : elt -> arr -> arr
val pow_scalar : arr -> elt -> arr
val add : arr -> arr -> arr
val sub : arr -> arr -> arr
val mul : arr -> arr -> arr
val div : arr -> arr -> arr
val add_scalar : arr -> elt -> arr
val sub_scalar : arr -> elt -> arr
val mul_scalar : arr -> elt -> arr
val div_scalar : arr -> elt -> arr
val scalar_add : elt -> arr -> arr
val scalar_sub : elt -> arr -> arr
val scalar_mul : elt -> arr -> arr
val scalar_div : elt -> arr -> arr
val fma : arr -> arr -> arr -> arr
Iterate array elements
val iteri : ( int -> elt -> unit ) -> arr -> unit
val iter : ( elt -> unit ) -> arr -> unit
val mapi : ( int -> elt -> elt ) -> arr -> arr
val map : ( elt -> elt ) -> arr -> arr
val filteri : ( int -> elt -> bool ) -> arr -> int array
val filter : ( elt -> bool ) -> arr -> int array
val foldi : ?axis:int -> ( int -> elt -> elt -> elt ) -> elt -> arr -> arr
val fold : ?axis:int -> ( elt -> elt -> elt ) -> elt -> arr -> arr
val scani : ?axis:int -> ( int -> elt -> elt -> elt ) -> arr -> arr
val scan : ?axis:int -> ( elt -> elt -> elt ) -> arr -> arr
Examination & Comparison
val exists : ( elt -> bool ) -> arr -> bool
val not_exists : ( elt -> bool ) -> arr -> bool
val for_all : ( elt -> bool ) -> arr -> bool
val is_zero : arr -> bool
val is_positive : arr -> bool
val is_negative : arr -> bool
val is_nonpositive : arr -> bool
val is_nonnegative : arr -> bool
val is_normal : arr -> bool
val not_nan : arr -> bool
val not_inf : arr -> bool
val equal : arr -> arr -> bool
val not_equal : arr -> arr -> bool
val greater : arr -> arr -> bool
val less : arr -> arr -> bool
val greater_equal : arr -> arr -> bool
val less_equal : arr -> arr -> bool
val elt_equal : arr -> arr -> arr
val elt_not_equal : arr -> arr -> arr
val elt_less : arr -> arr -> arr
val elt_greater : arr -> arr -> arr
val elt_less_equal : arr -> arr -> arr
val elt_greater_equal : arr -> arr -> arr
val equal_scalar : arr -> elt -> bool
val not_equal_scalar : arr -> elt -> bool
val less_scalar : arr -> elt -> bool
val greater_scalar : arr -> elt -> bool
val less_equal_scalar : arr -> elt -> bool
val greater_equal_scalar : arr -> elt -> bool
val elt_equal_scalar : arr -> elt -> arr
val elt_not_equal_scalar : arr -> elt -> arr
val elt_less_scalar : arr -> elt -> arr
val elt_greater_scalar : arr -> elt -> arr
val elt_less_equal_scalar : arr -> elt -> arr
val elt_greater_equal_scalar : arr -> elt -> arr
val row_num : arr -> int
val col_num : arr -> int
val row : arr -> int -> arr
val rows : arr -> int array -> arr
val copy_row_to : arr -> arr -> int -> unit
val copy_col_to : arr -> arr -> int -> unit
val diag : ?k:int -> arr -> arr
val transpose : ?axis:int array -> arr -> arr
val to_rows : arr -> arr array
val of_rows : arr array -> arr
val to_cols : arr -> arr array
val of_cols : arr array -> arr
val of_array : elt array -> int array -> arr
val of_arrays : elt array array -> arr
Create N-dimensional array
val linspace : elt -> elt -> int -> arr

linspace k 0. 9. 10 ...

val logspace : ?base:float -> elt -> elt -> int -> arr

logspace k 0. 9. 10 ...

val unit_basis : int -> int -> arr

unit_basis k n i returns a unit basis vector with ith element set to 1.

Obtain basic properties
val num_dims : arr -> int
val nth_dim : arr -> int -> int
val nnz : arr -> int
val density : arr -> float
val size_in_bytes : arr -> int
val same_shape : arr -> arr -> bool
val same_data : arr -> arr -> bool
val ind : arr -> int -> int array
val i1d : arr -> int array -> int
Manipulate a N-dimensional array
val get_index : arr -> int array array -> elt array
val set_index : arr -> int array array -> elt array -> unit
val get_fancy : Owl_types.index list -> arr -> arr
val set_fancy : Owl_types.index list -> arr -> arr -> unit
val sub_left : arr -> int -> int -> arr
val sub_ndarray : int array -> arr -> arr array
val slice_left : arr -> int array -> arr
val fill : arr -> elt -> unit
val resize : ?head:bool -> arr -> int array -> arr
val flip : ?axis:int -> arr -> arr
val rotate : arr -> int -> arr
val swap : int -> int -> arr -> arr
val concat_vertical : arr -> arr -> arr
val concat_horizontal : arr -> arr -> arr
val concat_vh : arr array array -> arr
val split_vh : (int * int) array array -> arr -> arr array array
val dropout : ?rate:float -> arr -> arr
val top : arr -> int -> int array array
val bottom : arr -> int -> int array array
val sort : arr -> arr
val sort1 : ?axis:int -> arr -> arr
val argsort : arr -> ( int64, Stdlib.Bigarray.int64_elt, Stdlib.Bigarray.c_layout ) Stdlib.Bigarray.Genarray.t
val mmap : Unix.file_descr -> ?pos:int64 -> bool -> int array -> arr
Iterate array elements
val iter2i : ( int -> elt -> elt -> unit ) -> arr -> arr -> unit
val iter2 : ( elt -> elt -> unit ) -> arr -> arr -> unit
val map2i : ( int -> elt -> elt -> elt ) -> arr -> arr -> arr
val map2 : ( elt -> elt -> elt ) -> arr -> arr -> arr
val iteri_nd : ( int array -> elt -> unit ) -> arr -> unit
val mapi_nd : ( int array -> elt -> elt ) -> arr -> arr
val foldi_nd : ?axis:int -> ( int array -> elt -> elt -> elt ) -> elt -> arr -> arr
val scani_nd : ?axis:int -> ( int array -> elt -> elt -> elt ) -> arr -> arr
val filteri_nd : ( int array -> elt -> bool ) -> arr -> int array array
val iter2i_nd : ( int array -> elt -> elt -> unit ) -> arr -> arr -> unit
val map2i_nd : ( int array -> elt -> elt -> elt ) -> arr -> arr -> arr
val iteri_slice : ?axis:int -> ( int -> arr -> unit ) -> arr -> unit
val iter_slice : ?axis:int -> ( arr -> unit ) -> arr -> unit
val mapi_slice : ?axis:int -> ( int -> arr -> 'c ) -> arr -> 'c array
val map_slice : ?axis:int -> ( arr -> 'c ) -> arr -> 'c array
val filteri_slice : ?axis:int -> ( int -> arr -> bool ) -> arr -> arr array
val filter_slice : ?axis:int -> ( arr -> bool ) -> arr -> arr array
val foldi_slice : ?axis:int -> ( int -> 'c -> arr -> 'c ) -> 'c -> arr -> 'c
val fold_slice : ?axis:int -> ( 'c -> arr -> 'c ) -> 'c -> arr -> 'c
Examine array elements or compare two arrays
val approx_equal : ?eps:float -> arr -> arr -> bool
val approx_equal_scalar : ?eps:float -> arr -> elt -> bool
val approx_elt_equal : ?eps:float -> arr -> arr -> arr
val approx_elt_equal_scalar : ?eps:float -> arr -> elt -> arr
Input/Output functions
val to_array : arr -> elt array
val save : out:string -> arr -> unit
val load : string -> arr
val save_npy : out:string -> arr -> unit
val load_npy : string -> arr
Unary mathematical operations
val prod : ?axis:int -> ?keep_dims:bool -> arr -> arr
val prod' : arr -> elt
val mean : ?axis:int -> ?keep_dims:bool -> arr -> arr
val mean' : arr -> elt
val median' : arr -> elt
val median : ?axis:int -> ?keep_dims:bool -> arr -> arr
val var : ?axis:int -> ?keep_dims:bool -> arr -> arr
val var' : arr -> elt
val std : ?axis:int -> ?keep_dims:bool -> arr -> arr
val std' : arr -> elt
val sem : ?axis:int -> ?keep_dims:bool -> arr -> arr
val sem' : arr -> elt
val minmax : ?axis:int -> ?keep_dims:bool -> arr -> arr * arr
val minmax' : arr -> elt * elt
val min_i : arr -> elt * int array
val max_i : arr -> elt * int array
val minmax_i : arr -> (elt * int array) * (elt * int array)
val abs2 : arr -> arr
val conj : arr -> arr
val reci : arr -> arr
val reci_tol : ?tol:elt -> arr -> arr
val cbrt : arr -> arr
val exp2 : arr -> arr
val exp10 : arr -> arr
val expm1 : arr -> arr
val log1p : arr -> arr
val trunc : arr -> arr
val fix : arr -> arr
val modf : arr -> arr * arr
val l1norm : ?axis:int -> ?keep_dims:bool -> arr -> arr
val l1norm' : arr -> elt
val l2norm : ?axis:int -> ?keep_dims:bool -> arr -> arr
val l2norm' : arr -> elt
val l2norm_sqr : ?axis:int -> ?keep_dims:bool -> arr -> arr
val l2norm_sqr' : arr -> elt
val vecnorm : ?axis:int -> ?p:float -> ?keep_dims:bool -> arr -> arr
val vecnorm' : ?p:float -> arr -> elt
val cumsum : ?axis:int -> arr -> arr
val cumprod : ?axis:int -> arr -> arr
val cummin : ?axis:int -> arr -> arr
val cummax : ?axis:int -> arr -> arr
val diff : ?axis:int -> ?n:int -> arr -> arr
val lgamma : arr -> arr
Binary mathematical operations
val min2 : arr -> arr -> arr
val max2 : arr -> arr -> arr
val ssqr' : arr -> elt -> elt
val ssqr_diff' : arr -> arr -> elt
val clip_by_value : ?amin:elt -> ?amax:elt -> arr -> arr
val clip_by_l2norm : elt -> arr -> arr
Tensor Calculus
val contract1 : (int * int) array -> arr -> arr
val contract2 : (int * int) array -> arr -> arr -> arr
Experimental functions
val sum_slices : ?axis:int -> arr -> arr
val slide : ?axis:int -> ?ofs:int -> ?step:int -> window:int -> arr -> arr
Functions of in-place modification
val create_ : out:arr -> elt -> unit
val uniform_ : ?a:elt -> ?b:elt -> out:arr -> unit
val gaussian_ : ?mu:elt -> ?sigma:elt -> out:arr -> unit
val sequential_ : ?a:elt -> ?step:elt -> out:arr -> unit
val bernoulli_ : ?p:float -> out:arr -> unit
val zeros_ : out:arr -> unit
val ones_ : out:arr -> unit
val sort_ : arr -> unit
val one_hot_ : out:arr -> int -> arr -> unit
val get_fancy_ : out:arr -> Owl_types.index list -> arr -> unit
val set_fancy_ : out:arr -> Owl_types.index list -> arr -> arr -> unit
val get_slice_ : out:arr -> int list list -> arr -> unit
val set_slice_ : out:arr -> int list list -> arr -> arr -> unit
val reshape_ : out:arr -> arr -> unit
val reverse_ : out:arr -> arr -> unit
val transpose_ : out:arr -> ?axis:int array -> arr -> unit
val repeat_ : out:arr -> arr -> int array -> unit
val tile_ : out:arr -> arr -> int array -> unit
val pad_ : out:arr -> ?v:elt -> int list list -> arr -> unit
val sum_ : out:arr -> axis:int -> arr -> unit
val min_ : out:arr -> axis:int -> arr -> unit
val max_ : out:arr -> axis:int -> arr -> unit
val add_ : ?out:arr -> arr -> arr -> unit
val sub_ : ?out:arr -> arr -> arr -> unit
val mul_ : ?out:arr -> arr -> arr -> unit
val div_ : ?out:arr -> arr -> arr -> unit
val pow_ : ?out:arr -> arr -> arr -> unit
val atan2_ : ?out:arr -> arr -> arr -> unit
val hypot_ : ?out:arr -> arr -> arr -> unit
val fmod_ : ?out:arr -> arr -> arr -> unit
val min2_ : ?out:arr -> arr -> arr -> unit
val max2_ : ?out:arr -> arr -> arr -> unit
val add_scalar_ : ?out:arr -> arr -> elt -> unit
val sub_scalar_ : ?out:arr -> arr -> elt -> unit
val mul_scalar_ : ?out:arr -> arr -> elt -> unit
val div_scalar_ : ?out:arr -> arr -> elt -> unit
val pow_scalar_ : ?out:arr -> arr -> elt -> unit
val atan2_scalar_ : ?out:arr -> arr -> elt -> unit
val fmod_scalar_ : ?out:arr -> arr -> elt -> unit
val scalar_add_ : ?out:arr -> elt -> arr -> unit
val scalar_sub_ : ?out:arr -> elt -> arr -> unit
val scalar_mul_ : ?out:arr -> elt -> arr -> unit
val scalar_div_ : ?out:arr -> elt -> arr -> unit
val scalar_pow_ : ?out:arr -> elt -> arr -> unit
val scalar_atan2_ : ?out:arr -> elt -> arr -> unit
val scalar_fmod_ : ?out:arr -> elt -> arr -> unit
val fma_ : ?out:arr -> arr -> arr -> arr -> unit
val clip_by_value_ : ?out:arr -> ?amin:elt -> ?amax:elt -> arr -> unit
val clip_by_l2norm_ : ?out:arr -> elt -> arr -> unit
val dot_ : ?transa:bool -> ?transb:bool -> ?alpha:elt -> ?beta:elt -> c:arr -> arr -> arr -> unit
val conj_ : ?out:arr -> arr -> unit
val abs_ : ?out:arr -> arr -> unit
val neg_ : ?out:arr -> arr -> unit
val reci_ : ?out:arr -> arr -> unit
val signum_ : ?out:arr -> arr -> unit
val sqr_ : ?out:arr -> arr -> unit
val sqrt_ : ?out:arr -> arr -> unit
val cbrt_ : ?out:arr -> arr -> unit
val exp_ : ?out:arr -> arr -> unit
val exp2_ : ?out:arr -> arr -> unit
val exp10_ : ?out:arr -> arr -> unit
val expm1_ : ?out:arr -> arr -> unit
val log_ : ?out:arr -> arr -> unit
val log2_ : ?out:arr -> arr -> unit
val log10_ : ?out:arr -> arr -> unit
val log1p_ : ?out:arr -> arr -> unit
val sin_ : ?out:arr -> arr -> unit
val cos_ : ?out:arr -> arr -> unit
val tan_ : ?out:arr -> arr -> unit
val asin_ : ?out:arr -> arr -> unit
val acos_ : ?out:arr -> arr -> unit
val atan_ : ?out:arr -> arr -> unit
val sinh_ : ?out:arr -> arr -> unit
val cosh_ : ?out:arr -> arr -> unit
val tanh_ : ?out:arr -> arr -> unit
val asinh_ : ?out:arr -> arr -> unit
val acosh_ : ?out:arr -> arr -> unit
val atanh_ : ?out:arr -> arr -> unit
val floor_ : ?out:arr -> arr -> unit
val ceil_ : ?out:arr -> arr -> unit
val round_ : ?out:arr -> arr -> unit
val trunc_ : ?out:arr -> arr -> unit
val fix_ : ?out:arr -> arr -> unit
val erf_ : ?out:arr -> arr -> unit
val erfc_ : ?out:arr -> arr -> unit
val relu_ : ?out:arr -> arr -> unit
val softplus_ : ?out:arr -> arr -> unit
val softsign_ : ?out:arr -> arr -> unit
val sigmoid_ : ?out:arr -> arr -> unit
val softmax_ : ?out:arr -> ?axis:int -> arr -> unit
val cumsum_ : ?out:arr -> ?axis:int -> arr -> unit
val cumprod_ : ?out:arr -> ?axis:int -> arr -> unit
val cummin_ : ?out:arr -> ?axis:int -> arr -> unit
val cummax_ : ?out:arr -> ?axis:int -> arr -> unit
val dropout_ : ?out:arr -> ?rate:float -> arr -> unit
val elt_equal_ : ?out:arr -> arr -> arr -> unit
val elt_not_equal_ : ?out:arr -> arr -> arr -> unit
val elt_less_ : ?out:arr -> arr -> arr -> unit
val elt_greater_ : ?out:arr -> arr -> arr -> unit
val elt_less_equal_ : ?out:arr -> arr -> arr -> unit
val elt_greater_equal_ : ?out:arr -> arr -> arr -> unit
val elt_equal_scalar_ : ?out:arr -> arr -> elt -> unit
val elt_not_equal_scalar_ : ?out:arr -> arr -> elt -> unit
val elt_less_scalar_ : ?out:arr -> arr -> elt -> unit
val elt_greater_scalar_ : ?out:arr -> arr -> elt -> unit
val elt_less_equal_scalar_ : ?out:arr -> arr -> elt -> unit
val elt_greater_equal_scalar_ : ?out:arr -> arr -> elt -> unit

Matrix functions

val col : arr -> int -> arr
val cols : arr -> int array -> arr
val dot : arr -> arr -> arr
val trace : arr -> elt
val to_arrays : arr -> elt array array
val draw_rows : ?replacement:bool -> arr -> int -> arr * int array
val draw_cols : ?replacement:bool -> arr -> int -> arr * int array
val draw_rows2 : ?replacement:bool -> arr -> arr -> int -> arr * arr * int array
val draw_cols2 : ?replacement:bool -> arr -> arr -> int -> arr * arr * int array
include Owl_dense_ndarray_intf.NN with type arr := arr
include Owl_base_dense_ndarray_intf.NN with type arr := arr
val conv1d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> arr
val conv2d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> arr
val conv3d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> arr
val dilated_conv1d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> int array -> arr
val dilated_conv2d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> int array -> arr
val dilated_conv3d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> int array -> arr
val transpose_conv1d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> arr
val transpose_conv2d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> arr
val transpose_conv3d : ?padding:Owl_types_common.padding -> arr -> arr -> int array -> arr
val max_pool1d : ?padding:Owl_types_common.padding -> arr -> int array -> int array -> arr
val max_pool2d : ?padding:Owl_types_common.padding -> arr -> int array -> int array -> arr
val max_pool3d : ?padding:Owl_types_common.padding -> arr -> int array -> int array -> arr
val avg_pool1d : ?padding:Owl_types_common.padding -> arr -> int array -> int array -> arr
val avg_pool2d : ?padding:Owl_types_common.padding -> arr -> int array -> int array -> arr
val avg_pool3d : ?padding:Owl_types_common.padding -> arr -> int array -> int array -> arr
val upsampling2d : arr -> int array -> arr
val conv1d_backward_input : arr -> arr -> int array -> arr -> arr
val conv1d_backward_kernel : arr -> arr -> int array -> arr -> arr
val conv2d_backward_input : arr -> arr -> int array -> arr -> arr
val conv2d_backward_kernel : arr -> arr -> int array -> arr -> arr
val conv3d_backward_input : arr -> arr -> int array -> arr -> arr
val conv3d_backward_kernel : arr -> arr -> int array -> arr -> arr
val dilated_conv1d_backward_input : arr -> arr -> int array -> int array -> arr -> arr
val dilated_conv1d_backward_kernel : arr -> arr -> int array -> int array -> arr -> arr
val dilated_conv2d_backward_input : arr -> arr -> int array -> int array -> arr -> arr
val dilated_conv2d_backward_kernel : arr -> arr -> int array -> int array -> arr -> arr
val dilated_conv3d_backward_input : arr -> arr -> int array -> int array -> arr -> arr
val dilated_conv3d_backward_kernel : arr -> arr -> int array -> int array -> arr -> arr
val transpose_conv1d_backward_input : arr -> arr -> int array -> arr -> arr
val transpose_conv1d_backward_kernel : arr -> arr -> int array -> arr -> arr
val transpose_conv2d_backward_input : arr -> arr -> int array -> arr -> arr
val transpose_conv2d_backward_kernel : arr -> arr -> int array -> arr -> arr
val transpose_conv3d_backward_input : arr -> arr -> int array -> arr -> arr
val transpose_conv3d_backward_kernel : arr -> arr -> int array -> arr -> arr
val max_pool1d_backward : Owl_types_common.padding -> arr -> int array -> int array -> arr -> arr
val max_pool2d_backward : Owl_types_common.padding -> arr -> int array -> int array -> arr -> arr
val max_pool3d_backward : Owl_types_common.padding -> arr -> int array -> int array -> arr -> arr
val avg_pool1d_backward : Owl_types_common.padding -> arr -> int array -> int array -> arr -> arr
val avg_pool2d_backward : Owl_types_common.padding -> arr -> int array -> int array -> arr -> arr
val avg_pool3d_backward : Owl_types_common.padding -> arr -> int array -> int array -> arr -> arr
val upsampling2d_backward : arr -> int array -> arr -> arr
val max_pool2d_argmax : ?padding:Owl_types.padding -> arr -> int array -> int array -> arr * ( int64, Stdlib.Bigarray.int64_elt, Stdlib.Bigarray.c_layout ) Stdlib.Bigarray.Genarray.t
val conv1d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> unit
val conv2d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> unit
val conv3d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> unit
val dilated_conv1d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> int array -> unit
val dilated_conv2d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> int array -> unit
val dilated_conv3d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> int array -> unit
val transpose_conv1d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> unit
val transpose_conv2d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> unit
val transpose_conv3d_ : out:arr -> ?padding:Owl_types.padding -> arr -> arr -> int array -> unit
val max_pool1d_ : out:arr -> ?padding:Owl_types.padding -> arr -> int array -> int array -> unit
val max_pool2d_ : out:arr -> ?padding:Owl_types.padding -> arr -> int array -> int array -> unit
val max_pool3d_ : out:arr -> ?padding:Owl_types.padding -> arr -> int array -> int array -> unit
val avg_pool1d_ : out:arr -> ?padding:Owl_types.padding -> arr -> int array -> int array -> unit
val avg_pool2d_ : out:arr -> ?padding:Owl_types.padding -> arr -> int array -> int array -> unit
val avg_pool3d_ : out:arr -> ?padding:Owl_types.padding -> arr -> int array -> int array -> unit
val upsampling2d_ : out:arr -> arr -> int array -> unit
val conv1d_backward_input_ : out:arr -> arr -> arr -> int array -> arr -> unit
val conv1d_backward_kernel_ : out:arr -> arr -> arr -> int array -> arr -> unit
val conv2d_backward_input_ : out:arr -> arr -> arr -> int array -> arr -> unit
val conv2d_backward_kernel_ : out:arr -> arr -> arr -> int array -> arr -> unit
val conv3d_backward_input_ : out:arr -> arr -> arr -> int array -> arr -> unit
val conv3d_backward_kernel_ : out:arr -> arr -> arr -> int array -> arr -> unit
val dilated_conv1d_backward_input_ : out:arr -> arr -> arr -> int array -> int array -> arr -> unit
val dilated_conv1d_backward_kernel_ : out:arr -> arr -> arr -> int array -> int array -> arr -> unit
val dilated_conv2d_backward_input_ : out:arr -> arr -> arr -> int array -> int array -> arr -> unit
val dilated_conv2d_backward_kernel_ : out:arr -> arr -> arr -> int array -> int array -> arr -> unit
val dilated_conv3d_backward_input_ : out:arr -> arr -> arr -> int array -> int array -> arr -> unit
val dilated_conv3d_backward_kernel_ : out:arr -> arr -> arr -> int array -> int array -> arr -> unit
val transpose_conv1d_backward_input_ : out:arr -> arr -> arr -> int array -> arr -> unit
val transpose_conv1d_backward_kernel_ : out:arr -> arr -> arr -> int array -> arr -> unit
val transpose_conv2d_backward_input_ : out:arr -> arr -> arr -> int array -> arr -> unit
val transpose_conv2d_backward_kernel_ : out:arr -> arr -> arr -> int array -> arr -> unit
val transpose_conv3d_backward_input_ : out:arr -> arr -> arr -> int array -> arr -> unit
val transpose_conv3d_backward_kernel_ : out:arr -> arr -> arr -> int array -> arr -> unit
val max_pool1d_backward_ : out:arr -> Owl_types.padding -> arr -> int array -> int array -> arr -> unit
val max_pool2d_backward_ : out:arr -> Owl_types.padding -> arr -> int array -> int array -> arr -> unit
val max_pool3d_backward_ : out:arr -> Owl_types.padding -> arr -> int array -> int array -> arr -> unit
val avg_pool1d_backward_ : out:arr -> Owl_types.padding -> arr -> int array -> int array -> arr -> unit
val avg_pool2d_backward_ : out:arr -> Owl_types.padding -> arr -> int array -> int array -> arr -> unit
val avg_pool3d_backward_ : out:arr -> Owl_types.padding -> arr -> int array -> int array -> arr -> unit
val upsampling2d_backward_ : out:arr -> arr -> int array -> arr -> unit
include Owl_dense_ndarray_intf.Complex with type elt := elt and type arr := arr and type cast_arr := cast_arr
Complex operations
val complex : cast_arr -> cast_arr -> arr

complex re im constructs a complex ndarray/matrix from re and im. re and im contain the real and imaginary part of x respectively.

Note that both re and im can be complex but must have same type. The real part of re will be the real part of x and the imaginary part of im will be the imaginary part of x.

val polar : cast_arr -> cast_arr -> arr

polar rho theta constructs a complex ndarray/matrix from polar coordinates rho and theta. rho contains the magnitudes and theta contains phase angles. Note that the behaviour is undefined if rho has negative elelments or theta has infinity elelments.

val re : arr -> cast_arr
val im : arr -> cast_arr
val sum' : arr -> elt