sig
module type CNTMAT =
sig
type m
type n
val value : (Slap_Z.Mat.CNTMAT.m, Slap_Z.Mat.CNTMAT.n, 'cnt) Slap_Z.mat
end
module type DSCMAT =
sig
type m
type n
val value :
(Slap_Z.Mat.DSCMAT.m, Slap_Z.Mat.DSCMAT.n, Slap_misc.dsc) Slap_Z.mat
end
val cnt : ('m, 'n, Slap_misc.cnt) Slap_Z.mat -> ('m, 'n, 'cnt) Slap_Z.mat
val empty : (Slap_size.z, Slap_size.z, 'cnt) Slap_Z.mat
val create : 'm Slap_size.t -> 'n Slap_size.t -> ('m, 'n, 'cnt) Slap_Z.mat
val make :
'm Slap_size.t ->
'n Slap_size.t -> Slap_Z.num_type -> ('m, 'n, 'cnt) Slap_Z.mat
val make0 : 'm Slap_size.t -> 'n Slap_size.t -> ('m, 'n, 'cnt) Slap_Z.mat
val make1 : 'm Slap_size.t -> 'n Slap_size.t -> ('m, 'n, 'cnt) Slap_Z.mat
val identity : 'n Slap_size.t -> ('n, 'n, 'cnt) Slap_Z.mat
val init :
'm Slap_size.t ->
'n Slap_size.t ->
(int -> int -> Slap_Z.num_type) -> ('m, 'n, 'cnt) Slap_Z.mat
val init_cols :
'm Slap_size.t ->
'n Slap_size.t ->
(int -> int -> Slap_Z.num_type) -> ('m, 'n, 'cnt) Slap_Z.mat
val init_rows :
'm Slap_size.t ->
'n Slap_size.t ->
(int -> int -> Slap_Z.num_type) -> ('m, 'n, 'cnt) Slap_Z.mat
val dim : ('m, 'n, 'cd) Slap_Z.mat -> 'm Slap_size.t * 'n Slap_size.t
val dim1 : ('m, 'n, 'cd) Slap_Z.mat -> 'm Slap_size.t
val dim2 : ('m, 'n, 'cd) Slap_Z.mat -> 'n Slap_size.t
val get_dyn : ('m, 'n, 'cd) Slap_Z.mat -> int -> int -> Slap_Z.num_type
val set_dyn :
('m, 'n, 'cd) Slap_Z.mat -> int -> int -> Slap_Z.num_type -> unit
val unsafe_get : ('m, 'n, 'cd) Slap_Z.mat -> int -> int -> Slap_Z.num_type
val unsafe_set :
('m, 'n, 'cd) Slap_Z.mat -> int -> int -> Slap_Z.num_type -> unit
val col_dyn : ('m, 'n, 'cd) Slap_Z.mat -> int -> ('m, 'cnt) Slap_Z.vec
val row_dyn :
('m, 'n, 'cd) Slap_Z.mat -> int -> ('n, Slap_misc.dsc) Slap_Z.vec
val copy_row_dyn : ('m, 'n, 'cd) Slap_Z.mat -> int -> ('n, 'cnt) Slap_Z.vec
val diag : ('n, 'n, 'cd) Slap_Z.mat -> ('n, Slap_misc.dsc) Slap_Z.vec
val diag_rect :
('m, 'n, 'cd) Slap_Z.mat ->
(('m, 'n) Slap_size.min, Slap_misc.dsc) Slap_Z.vec
val copy_diag : ('n, 'n, 'cd) Slap_Z.mat -> ('n, 'cnt) Slap_Z.vec
val copy_diag_rect :
('m, 'n, 'cd) Slap_Z.mat -> (('m, 'n) Slap_size.min, 'cnt) Slap_Z.vec
val as_vec :
('m, 'n, Slap_misc.cnt) Slap_Z.mat ->
(('m, 'n) Slap_size.mul, 'cnt) Slap_Z.vec
val fill : ('m, 'n, 'cd) Slap_Z.mat -> Slap_Z.num_type -> unit
val copy :
?uplo:[ `L | `U ] ->
?b:('m, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat -> ('m, 'n, 'b_cd) Slap_Z.mat
val of_col_vecs_dyn :
'm Slap_size.t ->
'n Slap_size.t ->
('m, Slap_misc.cnt) Slap_Z.vec array -> ('m, 'n, 'cnt) Slap_Z.mat
val to_array : ('m, 'n, 'cd) Slap_Z.mat -> Slap_Z.num_type array array
val of_array_dyn :
'm Slap_size.t ->
'n Slap_size.t ->
Slap_Z.num_type array array -> ('m, 'n, 'cnt) Slap_Z.mat
val of_array : Slap_Z.num_type array array -> (module Slap_Z.Mat.CNTMAT)
module Of_array :
functor (X : sig val value : Slap_Z.num_type array array end) -> CNTMAT
val unsafe_of_array :
'm Slap_size.t ->
'n Slap_size.t ->
Slap_Z.num_type array array -> ('m, 'n, 'cnt) Slap_Z.mat
val to_list : ('m, 'n, 'cd) Slap_Z.mat -> Slap_Z.num_type list list
val of_list_dyn :
'm Slap_size.t ->
'n Slap_size.t -> Slap_Z.num_type list list -> ('m, 'n, 'cnt) Slap_Z.mat
val of_list : Slap_Z.num_type list list -> (module Slap_Z.Mat.CNTMAT)
module Of_list :
functor (X : sig val value : Slap_Z.num_type list list end) -> CNTMAT
val unsafe_of_list :
'm Slap_size.t ->
'n Slap_size.t -> Slap_Z.num_type list list -> ('m, 'n, 'cnt) Slap_Z.mat
val to_bigarray :
('m, 'n, 'cd) Slap_Z.mat ->
(Slap_Z.num_type, Slap_Z.prec, Bigarray.fortran_layout) Bigarray.Array2.t
val of_bigarray_dyn :
?share:bool ->
'm Slap_size.t ->
'n Slap_size.t ->
(Slap_Z.num_type, Slap_Z.prec, Bigarray.fortran_layout) Bigarray.Array2.t ->
('m, 'n, 'cnt) Slap_Z.mat
val of_bigarray :
(Slap_Z.num_type, Slap_Z.prec, Bigarray.fortran_layout) Bigarray.Array2.t ->
(module Slap_Z.Mat.CNTMAT)
module Of_bigarray :
functor
(X : sig
val value :
(Slap_Z.num_type, Slap_Z.prec, Bigarray.fortran_layout)
Bigarray.Array2.t
end) ->
CNTMAT
val unsafe_of_bigarray :
?share:bool ->
'm Slap_size.t ->
'n Slap_size.t ->
(Slap_Z.num_type, Slap_Z.prec, Bigarray.fortran_layout) Bigarray.Array2.t ->
('m, 'n, 'cnt) Slap_Z.mat
val of_array_c :
Slap_Z.num_type array array ->
(Slap_Z.num_type, Slap_Z.prec, 'cnt) Slap_mat.dyn
val of_list_c :
Slap_Z.num_type list list ->
(Slap_Z.num_type, Slap_Z.prec, 'cnt) Slap_mat.dyn
val of_bigarray_c :
?share:bool ->
(Slap_Z.num_type, Slap_Z.prec, Bigarray.fortran_layout) Bigarray.Array2.t ->
(Slap_Z.num_type, Slap_Z.prec, 'cnt) Slap_mat.dyn
val map :
(Slap_Z.num_type -> Slap_Z.num_type) ->
?b:('m, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat -> ('m, 'n, 'b_cd) Slap_Z.mat
val mapi :
(int -> int -> Slap_Z.num_type -> Slap_Z.num_type) ->
?b:('m, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat -> ('m, 'n, 'b_cd) Slap_Z.mat
val fold_left :
('accum -> ('m, 'x_cd) Slap_Z.vec -> 'accum) ->
'accum -> ('m, 'n, 'a_cd) Slap_Z.mat -> 'accum
val fold_lefti :
(int -> 'accum -> ('m, 'x_cd) Slap_Z.vec -> 'accum) ->
'accum -> ('m, 'n, 'a_cd) Slap_Z.mat -> 'accum
val fold_right :
(('m, 'x_cd) Slap_Z.vec -> 'accum -> 'accum) ->
('m, 'n, 'a_cd) Slap_Z.mat -> 'accum -> 'accum
val fold_righti :
(int -> ('m, 'x_cd) Slap_Z.vec -> 'accum -> 'accum) ->
('m, 'n, 'a_cd) Slap_Z.mat -> 'accum -> 'accum
val fold_top :
('accum -> ('n, Slap_misc.dsc) Slap_Z.vec -> 'accum) ->
'accum -> ('m, 'n, 'a_cd) Slap_Z.mat -> 'accum
val fold_topi :
(int -> 'accum -> ('n, Slap_misc.dsc) Slap_Z.vec -> 'accum) ->
'accum -> ('m, 'n, 'a_cd) Slap_Z.mat -> 'accum
val fold_bottom :
(('n, Slap_misc.dsc) Slap_Z.vec -> 'accum -> 'accum) ->
('m, 'n, 'a_cd) Slap_Z.mat -> 'accum -> 'accum
val fold_bottomi :
(int -> ('n, Slap_misc.dsc) Slap_Z.vec -> 'accum -> 'accum) ->
('m, 'n, 'a_cd) Slap_Z.mat -> 'accum -> 'accum
val replace_all :
('m, 'n, 'cd) Slap_Z.mat -> (Slap_Z.num_type -> Slap_Z.num_type) -> unit
val replace_alli :
('m, 'n, 'cd) Slap_Z.mat ->
(int -> int -> Slap_Z.num_type -> Slap_Z.num_type) -> unit
val transpose_copy :
?b:('n, 'm, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat -> ('n, 'm, 'b_cd) Slap_Z.mat
val detri : ?up:bool -> ('n, 'n, 'cd) Slap_Z.mat -> unit
val packed :
?up:bool ->
?x:('n Slap_size.packed, Slap_misc.cnt) Slap_Z.vec ->
('n, 'n, 'cd) Slap_Z.mat -> ('n Slap_size.packed, 'cnt) Slap_Z.vec
val unpacked :
?up:bool ->
?fill_num:Slap_Z.num_type option ->
?a:('n, 'n, 'cd) Slap_Z.mat ->
('n Slap_size.packed, Slap_misc.cnt) Slap_Z.vec ->
('n, 'n, 'cd) Slap_Z.mat
val geband_dyn :
'kl Slap_size.t ->
'ku Slap_size.t ->
?b:(('m, 'n, 'kl, 'ku) Slap_size.geband, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat ->
(('m, 'n, 'kl, 'ku) Slap_size.geband, 'n, 'b_cd) Slap_Z.mat
val ungeband :
'm Slap_size.t ->
'kl Slap_size.t ->
'ku Slap_size.t ->
?fill_num:Slap_Z.num_type option ->
?a:('m, 'n, 'a_cd) Slap_Z.mat ->
(('m, 'n, 'kl, 'ku) Slap_size.geband, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat
val syband_dyn :
'kd Slap_size.t ->
?up:bool ->
?b:(('n, 'kd) Slap_size.syband, 'n, 'b_cd) Slap_Z.mat ->
('n, 'n, 'a_cd) Slap_Z.mat ->
(('n, 'kd) Slap_size.syband, 'n, 'b_cd) Slap_Z.mat
val unsyband :
'kd Slap_size.t ->
?up:bool ->
?fill_num:Slap_Z.num_type option ->
?a:('n, 'n, 'a_cd) Slap_Z.mat ->
(('n, 'kd) Slap_size.syband, 'n, 'b_cd) Slap_Z.mat ->
('n, 'n, 'a_cd) Slap_Z.mat
val luband_dyn :
'kl Slap_size.t ->
'ku Slap_size.t ->
?ab:(('m, 'n, 'kl, 'ku) Slap_size.luband, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat ->
(('m, 'n, 'kl, 'ku) Slap_size.luband, 'n, 'b_cd) Slap_Z.mat
val unluband :
'm Slap_size.t ->
'kl Slap_size.t ->
'ku Slap_size.t ->
?fill_num:Slap_Z.num_type option ->
?a:('m, 'n, 'a_cd) Slap_Z.mat ->
(('m, 'n, 'kl, 'ku) Slap_size.luband, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat
val add_const :
Slap_Z.num_type ->
?b:('m, 'n, 'b_cd) Slap_Z.mat ->
('m, 'n, 'a_cd) Slap_Z.mat -> ('m, 'n, 'b_cd) Slap_Z.mat
val sum : ('m, 'n, 'cd) Slap_Z.mat -> Slap_Z.num_type
val trace : ('m, 'n, 'cd) Slap_Z.mat -> Slap_Z.num_type
val scal : Slap_Z.num_type -> ('m, 'n, 'cd) Slap_Z.mat -> unit
val scal_cols :
('m, 'n, 'cd) Slap_Z.mat -> ('n, Slap_misc.cnt) Slap_Z.vec -> unit
val scal_rows :
('m, Slap_misc.cnt) Slap_Z.vec -> ('m, 'n, 'cd) Slap_Z.mat -> unit
val axpy :
?alpha:Slap_Z.num_type ->
('m, 'n, 'x_cd) Slap_Z.mat -> ('m, 'n, 'y_cd) Slap_Z.mat -> unit
val gemm_diag :
?beta:Slap_Z.num_type ->
?y:('n, Slap_misc.cnt) Slap_Z.vec ->
transa:('a_n * 'a_k, 'n * 'k, [< `C | `N | `T ]) Slap_Z.trans3 ->
?alpha:Slap_Z.num_type ->
('a_n, 'a_k, 'a_cd) Slap_Z.mat ->
transb:('b_k * 'b_n, 'k * 'n, [< `C | `N | `T ]) Slap_Z.trans3 ->
('b_k, 'b_n, 'b_cd) Slap_Z.mat -> ('n, 'cnt) Slap_Z.vec
val syrk_diag :
?beta:Slap_Z.num_type ->
?y:('n, Slap_misc.cnt) Slap_Z.vec ->
trans:('a_n * 'a_k, 'n * 'k, [< `N | `T ]) Slap_common.trans2 ->
?alpha:Slap_Z.num_type ->
('a_n, 'a_k, 'a_cd) Slap_Z.mat -> ('n, 'cnt) Slap_Z.vec
val gemm_trace :
transa:('a_n * 'a_k, 'n * 'k, [< `C | `N | `T ]) Slap_Z.trans3 ->
('a_n, 'a_k, 'a_cd) Slap_Z.mat ->
transb:('b_k * 'b_n, 'k * 'n, [< `C | `N | `T ]) Slap_Z.trans3 ->
('b_k, 'b_n, 'b_cd) Slap_Z.mat -> Slap_Z.num_type
val syrk_trace : ('n, 'k, 'cd) Slap_Z.mat -> Slap_Z.num_type
val symm2_trace :
?upa:bool ->
('n, 'n, 'a_cd) Slap_Z.mat ->
?upb:bool -> ('n, 'n, 'b_cd) Slap_Z.mat -> Slap_Z.num_type
val submat_dyn :
'm Slap_size.t ->
'n Slap_size.t ->
?ar:int ->
?ac:int -> ('a, 'b, 'cd) Slap_Z.mat -> ('m, 'n, Slap_misc.dsc) Slap_Z.mat
val random :
?rnd_state:Random.State.t ->
?re_from:float ->
?re_range:float ->
?im_from:float ->
?im_range:float ->
'm Slap_size.t -> 'n Slap_size.t -> ('m, 'n, 'cnt) Slap_Z.mat
end