sig
module Io :
sig
module Context :
sig
type t
val create : int -> Lacaml.Io.Context.t
val ellipsis_default : string Pervasives.ref
val vertical_default : Lacaml.Io.Context.t option Pervasives.ref
val horizontal_default : Lacaml.Io.Context.t option Pervasives.ref
val set_dim_defaults : Lacaml.Io.Context.t option -> unit
end
val pp_mat_gen :
?pp_open:(Format.formatter -> unit) ->
?pp_close:(Format.formatter -> unit) ->
?pp_head:(Format.formatter -> int -> unit) ->
?pp_foot:(Format.formatter -> int -> unit) ->
?pp_end_row:(Format.formatter -> int -> unit) ->
?pp_end_col:(Format.formatter -> row:int -> col:int -> unit) ->
?pp_left:(Format.formatter -> int -> unit) ->
?pp_right:(Format.formatter -> int -> unit) ->
?pad:char option ->
?ellipsis:string ->
?vertical_context:Lacaml.Io.Context.t option ->
?horizontal_context:Lacaml.Io.Context.t option ->
(Format.formatter -> 'el -> unit) ->
Format.formatter ->
('el, 'a, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
type 'el pp_el_default =
(Format.formatter -> 'el -> unit) Pervasives.ref
val pp_float_el_default : float Lacaml.Io.pp_el_default
val pp_complex_el_default : Complex.t Lacaml.Io.pp_el_default
val pp_int32_el : Format.formatter -> int32 -> unit
type ('el, 'elt) pp_vec =
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
val pp_fvec : (float, 'elt) Lacaml.Io.pp_vec
val pp_cvec : (Complex.t, 'elt) Lacaml.Io.pp_vec
val pp_ivec : (int32, 'elt) Lacaml.Io.pp_vec
val pp_rfvec : (float, 'elt) Lacaml.Io.pp_vec
val pp_rcvec : (Complex.t, 'elt) Lacaml.Io.pp_vec
val pp_rivec : (int32, 'elt) Lacaml.Io.pp_vec
type ('el, 'elt) pp_mat =
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
val pp_fmat : (float, 'elt) Lacaml.Io.pp_mat
val pp_cmat : (Complex.t, 'elt) Lacaml.Io.pp_mat
val pp_imat : (int32, 'elt) Lacaml.Io.pp_mat
type ('el, 'elt) pp_labeled_vec =
?pp_head:(Format.formatter -> int -> unit) ->
?pp_foot:(Format.formatter -> int -> unit) ->
?pp_left:(Format.formatter -> int -> unit) option ->
?pp_right:(Format.formatter -> int -> unit) ->
?pad:char option ->
?ellipsis:string ->
?vertical_context:Lacaml.Io.Context.t option ->
?horizontal_context:Lacaml.Io.Context.t option ->
unit ->
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
val pp_labeled_fvec : (float, 'elt) Lacaml.Io.pp_labeled_vec
val pp_labeled_cvec : (Complex.t, 'elt) Lacaml.Io.pp_labeled_vec
val pp_labeled_ivec : (int32, 'elt) Lacaml.Io.pp_labeled_vec
val pp_labeled_rfvec : (float, 'elt) Lacaml.Io.pp_labeled_vec
val pp_labeled_rcvec : (Complex.t, 'elt) Lacaml.Io.pp_labeled_vec
val pp_labeled_rivec : (int32, 'elt) Lacaml.Io.pp_labeled_vec
type ('el, 'elt) pp_lvec =
?print_head:bool ->
?print_foot:bool ->
?print_left:bool ->
?print_right:bool ->
?labels:string array ->
?name:string ->
?pad:char option ->
?ellipsis:string ->
?vertical_context:Lacaml.Io.Context.t option ->
?horizontal_context:Lacaml.Io.Context.t option ->
unit ->
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
val pp_lfvec : (float, 'elt) Lacaml.Io.pp_lvec
val pp_lcvec : (Complex.t, 'elt) Lacaml.Io.pp_lvec
val pp_livec : (int32, 'elt) Lacaml.Io.pp_lvec
val pp_rlfvec : (float, 'elt) Lacaml.Io.pp_lvec
val pp_rlcvec : (Complex.t, 'elt) Lacaml.Io.pp_lvec
val pp_rlivec : (int32, 'elt) Lacaml.Io.pp_lvec
type ('el, 'elt) pp_labeled_mat =
?pp_head:(Format.formatter -> int -> unit) option ->
?pp_foot:(Format.formatter -> int -> unit) option ->
?pp_left:(Format.formatter -> int -> unit) option ->
?pp_right:(Format.formatter -> int -> unit) option ->
?pad:char option ->
?ellipsis:string ->
?vertical_context:Lacaml.Io.Context.t option ->
?horizontal_context:Lacaml.Io.Context.t option ->
unit ->
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
val pp_labeled_fmat : (float, 'elt) Lacaml.Io.pp_labeled_mat
val pp_labeled_cmat : (Complex.t, 'elt) Lacaml.Io.pp_labeled_mat
val pp_labeled_imat : (int32, 'elt) Lacaml.Io.pp_labeled_mat
type ('el, 'elt) pp_lmat =
?print_head:bool ->
?print_foot:bool ->
?print_left:bool ->
?print_right:bool ->
?row_labels:string array ->
?col_labels:string array ->
?pad:char option ->
?ellipsis:string ->
?vertical_context:Lacaml.Io.Context.t option ->
?horizontal_context:Lacaml.Io.Context.t option ->
unit ->
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
val pp_lfmat : (float, 'elt) Lacaml.Io.pp_lmat
val pp_lcmat : (Complex.t, 'elt) Lacaml.Io.pp_lmat
val pp_limat : (int32, 'elt) Lacaml.Io.pp_lmat
type ('el, 'elt) pp_el_ovec =
Format.formatter ->
(Format.formatter -> 'el -> unit) ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
val pp_ovec : ('el, 'elt) Lacaml.Io.pp_el_ovec
val pp_rovec : ('el, 'elt) Lacaml.Io.pp_el_ovec
type ('el, 'elt) pp_ovec =
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
val pp_ofvec : (float, 'elt) Lacaml.Io.pp_ovec
val pp_ocvec : (Complex.t, 'elt) Lacaml.Io.pp_ovec
val pp_oivec : (int32, 'elt) Lacaml.Io.pp_ovec
val pp_rofvec : (float, 'elt) Lacaml.Io.pp_ovec
val pp_rocvec : (Complex.t, 'elt) Lacaml.Io.pp_ovec
val pp_roivec : (int32, 'elt) Lacaml.Io.pp_ovec
val pp_omat :
Format.formatter ->
(Format.formatter -> 'el -> unit) ->
('el, 'c, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
type ('el, 'elt) pp_omat =
Format.formatter ->
('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
val pp_ofmat : (float, 'elt) Lacaml.Io.pp_omat
val pp_ocmat : (Complex.t, 'elt) Lacaml.Io.pp_omat
val pp_oimat : (int32, 'elt) Lacaml.Io.pp_omat
module Toplevel :
sig
val lsc : int -> unit
val pp_fvec : (float, 'elt) Lacaml.Io.pp_vec
val pp_cvec : (Complex.t, 'elt) Lacaml.Io.pp_vec
val pp_ivec : (int32, 'elt) Lacaml.Io.pp_vec
val pp_rfvec : (float, 'elt) Lacaml.Io.pp_vec
val pp_rcvec : (Complex.t, 'elt) Lacaml.Io.pp_vec
val pp_rivec : (int32, 'elt) Lacaml.Io.pp_vec
val pp_fmat : (float, 'elt) Lacaml.Io.pp_mat
val pp_cmat : (Complex.t, 'elt) Lacaml.Io.pp_mat
val pp_imat : (int32, 'elt) Lacaml.Io.pp_mat
end
end
module Real_io :
sig
val pp_num : Format.formatter -> float -> unit
val pp_vec : (float, 'a) Lacaml.Io.pp_vec
val pp_mat : (float, 'a) Lacaml.Io.pp_mat
end
module Complex_io :
sig
val pp_num : Format.formatter -> Complex.t -> unit
val pp_vec : (Complex.t, 'a) Lacaml.Io.pp_vec
val pp_mat : (Complex.t, 'a) Lacaml.Io.pp_mat
end
module Common :
sig
type trans2 = [ `N | `T ]
type side = [ `L | `R ]
type diag = [ `N | `U ]
type norm2 = [ `I | `O ]
type norm4 = [ `F | `I | `M | `O ]
type svd_job = [ `A | `N | `O | `S ]
exception InternalError of string
type int_vec =
(int, Bigarray.int_elt, Bigarray.fortran_layout) Bigarray.Array1.t
val create_int_vec : int -> Lacaml.Common.int_vec
type int32_vec =
(int32, Bigarray.int32_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
val create_int32_vec : int -> Lacaml.Common.int32_vec
val mat_from_vec :
('a, 'b, 'c) Bigarray.Array1.t -> ('a, 'b, 'c) Bigarray.Array2.t
end
module Utils :
sig
val empty_int32_vec : Common.int32_vec
val get_norm_char : [< `F | `I | `M | `O ] -> char
val get_uplo_char : bool -> char
val get_trans_char : [< `C | `N | `T ] -> char
val get_side_char : [< `L | `R ] -> char
val get_diag_char : [< `N | `U ] -> char
val get_s_d_job_char : [< `A | `N | `O | `S ] -> char
val get_job_char : bool -> char
val job_char_true : char
val job_char_false : char
val a_str : string
val ab_str : string
val alphas_str : string
val ap_str : string
val b_str : string
val c_str : string
val d_str : string
val dl_str : string
val du_str : string
val e_str : string
val ipiv_str : string
val iseed_str : string
val k_str : string
val ka_str : string
val kb_str : string
val work_str : string
val lwork_str : string
val liwork_str : string
val kd_str : string
val kl_str : string
val ku_str : string
val m_str : string
val n_str : string
val nrhs_str : string
val s_str : string
val tau_str : string
val u_str : string
val um_str : string
val un_str : string
val vm_str : string
val vn_str : string
val vt_str : string
val w_str : string
val wi_str : string
val wr_str : string
val x_str : string
val y_str : string
val z_str : string
val get_work :
string ->
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
('a, 'b, 'c) Bigarray.Array1.t option ->
int -> int -> string -> ('a, 'b, 'c) Bigarray.Array1.t * int
val calc_unpacked_dim : string -> int -> int
val get_unpacked_dim : string -> ?n:int -> int -> int
external ilaenv :
int -> string -> string -> int -> int -> int -> int -> int
= "lacaml_ilaenv_stub_bc" "lacaml_ilaenv_stub"
val check_var_ltz : string -> string -> int -> unit
val check_vec :
string -> string -> ('a, 'b, 'c) Bigarray.Array1.t -> int -> unit
val get_vec :
string ->
string ->
('a, 'b, 'c) Bigarray.Array1.t option ->
int ->
int ->
int ->
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
('a, 'b, 'c) Bigarray.Array1.t
val check_dim1_mat :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t -> int -> string -> int -> unit
val check_dim2_mat :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t -> int -> string -> int -> unit
val check_dim_mat :
string ->
string ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> unit
val get_mat :
string ->
string ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t
val get_dim_vec :
string ->
string ->
int ->
int -> ('a, 'b, 'c) Bigarray.Array1.t -> string -> int option -> int
val get_dim1_mat :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t -> int -> string -> int option -> int
val get_dim2_mat :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t -> int -> string -> int option -> int
val get_k_mat_sb :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t -> int -> string -> int option -> int
val get_dim_mat_packed :
string ->
string ->
int -> ('a, 'b, 'c) Bigarray.Array1.t -> string -> int option -> int
val get_inc : string -> string -> int option -> int
val get_ofs : string -> string -> int option -> int
val get_vec_geom :
string -> string -> int option -> int option -> int * int
val get_n_of_square :
string ->
string ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int option -> int
val get_n_of_a :
string ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int option -> int
val get_nrhs_of_b :
string ->
int ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int option -> int
val orgqr_err :
loc:string ->
m:int ->
n:int ->
k:int ->
work:('a, 'b, 'c) Bigarray.Array1.t ->
a:('d, 'e, 'f) Bigarray.Array2.t -> err:int -> 'g
val orgqr_get_params :
string ->
?m:int ->
?n:int ->
?k:int ->
tau:('a, 'b, 'c) Bigarray.Array1.t ->
ar:int -> ac:int -> ('d, 'e, 'f) Bigarray.Array2.t -> int * int * int
val ormqr_err :
loc:string ->
side:[< `L | `R ] ->
m:int ->
n:int ->
k:int ->
lwork:int ->
a:('a, 'b, 'c) Bigarray.Array2.t ->
c:('d, 'e, 'f) Bigarray.Array2.t -> err:int -> 'g
val ormqr_get_params :
string ->
side:[< `L | `R ] ->
?m:int ->
?n:int ->
?k:int ->
tau:('a, 'b, 'c) Bigarray.Array1.t ->
ar:int ->
ac:int ->
('d, 'e, 'f) Bigarray.Array2.t ->
cr:int -> cc:int -> ('g, 'h, 'i) Bigarray.Array2.t -> int * int * int
val gelsX_err :
string ->
(m:int -> n:int -> nrhs:int -> int) ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int ->
int ->
int -> int -> int -> ('d, 'e, 'f) Bigarray.Array2.t -> int -> 'g
val gelsX_get_s :
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array1.t option ->
('a, 'b, 'c) Bigarray.Array1.t
val gelsX_get_params :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int option ->
int option ->
int option ->
int -> int -> ('d, 'e, 'f) Bigarray.Array2.t -> int * int * int
val xxev_get_params :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int option -> bool -> bool -> int * char * char
val xxev_get_wx :
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
string ->
string ->
int ->
('a, 'b, 'c) Bigarray.Array1.t option ->
int -> int * ('a, 'b, 'c) Bigarray.Array1.t
val geev_get_job_side :
string ->
('a, 'b, 'c) Bigarray.Array2.t ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
string ->
int ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option option ->
int * int * ('a, 'b, 'c) Bigarray.Array2.t * char * bool
val geev_gen_get_params :
string ->
('a, 'b, 'c) Bigarray.Array2.t ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
int option ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option option ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option option ->
int * int * int * ('a, 'b, 'c) Bigarray.Array2.t * char * int *
int * ('a, 'b, 'c) Bigarray.Array2.t * char * bool
val gXmv_get_params :
string ->
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
int ->
int ->
int option ->
int option ->
('d, 'e, 'f) Bigarray.Array1.t ->
int option ->
int option ->
('a, 'b, 'c) Bigarray.Array1.t option ->
[< `C | `N | `T > `N ] ->
int * int * int * int * ('a, 'b, 'c) Bigarray.Array1.t * char
val symv_get_params :
string ->
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
int option ->
int option ->
int option ->
('g, 'h, 'i) Bigarray.Array1.t ->
int option ->
int option ->
('a, 'b, 'c) Bigarray.Array1.t option ->
bool ->
int * int * int * int * int * ('a, 'b, 'c) Bigarray.Array1.t * char
val trXv_get_params :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int option ->
int option ->
int option ->
('d, 'e, 'f) Bigarray.Array1.t ->
bool ->
[< `C | `N | `T ] ->
[< `N | `U ] -> int * int * int * char * char * char
val tpXv_get_params :
string ->
int option ->
('a, 'b, 'c) Bigarray.Array1.t ->
?n:int ->
int option ->
int option ->
('d, 'e, 'f) Bigarray.Array1.t ->
bool ->
[< `C | `N | `T ] ->
[< `N | `U ] -> int * int * int * int * char * char * char
val get_c :
string ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t
val get_rows_mat_tr :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t ->
int -> int -> [> `N ] -> string -> int option -> int
val get_cols_mat_tr :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t ->
int -> int -> [> `N ] -> string -> int option -> int
val get_inner_dim :
string ->
string ->
('a, 'b, 'c) Bigarray.Array2.t ->
int ->
int ->
[> `N ] ->
string ->
('d, 'e, 'f) Bigarray.Array2.t ->
int -> int -> [> `N ] -> string -> int option -> int
val gemm_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
[< `C | `N | `T > `N ] ->
int ->
int ->
('g, 'h, 'i) Bigarray.Array2.t ->
int ->
[< `C | `N | `T > `N ] ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option ->
int option ->
int option ->
int option ->
int * int * int * char * char * ('a, 'b, 'c) Bigarray.Array2.t
val check_mat_square :
string ->
string -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> int -> unit
val symm_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
int ->
int ->
('g, 'h, 'i) Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option ->
int option ->
int option ->
[< `L | `R > `L ] ->
bool -> int * int * char * char * ('a, 'b, 'c) Bigarray.Array2.t
val trXm_get_params :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
int option ->
int option ->
[< `L | `R > `L ] ->
bool ->
[< `C | `N | `T ] ->
[< `N | `U ] -> int * int * char * char * char * char
val syrk_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option ->
int option ->
int option ->
bool ->
[< `C | `N | `T > `N ] ->
int * int * char * char * ('a, 'b, 'c) Bigarray.Array2.t
val syr2k_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t ->
int ->
int ->
('g, 'h, 'i) Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t option ->
int option ->
int option ->
bool ->
[< `C | `N | `T > `N ] ->
int * int * char * char * ('a, 'b, 'c) Bigarray.Array2.t
val xlange_get_params :
string ->
int option ->
int option ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int * int
val xxtrs_get_params :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int option ->
int ->
int -> ('d, 'e, 'f) Bigarray.Array2.t -> int option -> int * int
val xxtrs_err :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
('d, 'e, 'f) Bigarray.Array2.t -> int -> 'g
val xxtri_singular_err : string -> int -> 'a
val xxtri_err :
string -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val xxcon_err :
string -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val geXrf_get_params :
string ->
int option ->
int option ->
int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int * int
val getrf_err :
string -> int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val getrf_lu_err : string -> int -> 'a
val getrf_get_ipiv :
string -> Common.int32_vec option -> int -> int -> Common.int32_vec
val sytrf_get_ipiv :
string -> Common.int32_vec option -> int -> Common.int32_vec
val sytrf_err :
string -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val sytrf_fact_err : string -> int -> 'a
val potrf_chol_err : string -> int -> 'a
val potrf_err :
string -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val potrs_err :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
('d, 'e, 'f) Bigarray.Array2.t -> int -> 'g
val trtrs_err :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
('d, 'e, 'f) Bigarray.Array2.t -> int -> 'g
val tbtrs_err :
string ->
int ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
('d, 'e, 'f) Bigarray.Array2.t -> int -> 'g
val getri_err :
string ->
(int -> int) ->
int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> 'd
val trtri_err :
string -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val gecon_err :
string -> char -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val gesvd_err :
string ->
char ->
char ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
('d, 'e, 'f) Bigarray.Array2.t ->
('g, 'h, 'i) Bigarray.Array2.t -> int -> int -> 'j
val gesvd_get_params :
string ->
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
(int -> int -> ('d, 'e, 'f) Bigarray.Array2.t) ->
[< `A | `N | `O | `S ] ->
[< `A | `N | `O | `S ] ->
int option ->
int option ->
int ->
int ->
('g, 'h, 'i) Bigarray.Array2.t ->
('a, 'b, 'c) Bigarray.Array1.t option ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t option ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t option ->
char * char * int * int * ('a, 'b, 'c) Bigarray.Array1.t *
('d, 'e, 'f) Bigarray.Array2.t * ('d, 'e, 'f) Bigarray.Array2.t
val gesdd_err :
string ->
char ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
('d, 'e, 'f) Bigarray.Array2.t ->
('g, 'h, 'i) Bigarray.Array2.t -> int -> int -> 'j
val gesdd_get_params :
string ->
(int -> ('a, 'b, 'c) Bigarray.Array1.t) ->
(int -> int -> ('d, 'e, 'f) Bigarray.Array2.t) ->
[< `A | `N | `O | `S ] ->
int option ->
int option ->
int ->
int ->
('g, 'h, 'i) Bigarray.Array2.t ->
('a, 'b, 'c) Bigarray.Array1.t option ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t option ->
int ->
int ->
('d, 'e, 'f) Bigarray.Array2.t option ->
char * int * int * ('a, 'b, 'c) Bigarray.Array1.t *
('d, 'e, 'f) Bigarray.Array2.t * ('d, 'e, 'f) Bigarray.Array2.t
val xxsv_err :
string -> int -> int -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val xxsv_lu_err : string -> int -> 'a
val xxsv_pos_err : string -> int -> 'a
val xxsv_ind_err : string -> int -> 'a
val xxsv_a_err : string -> ('a, 'b, 'c) Bigarray.Array2.t -> int -> 'd
val xxsv_work_err : string -> int -> 'a
val xxsv_get_ipiv :
string -> Common.int32_vec option -> int -> Common.int32_vec
val xxsv_get_params :
string ->
int ->
int ->
('a, 'b, 'c) Bigarray.Array2.t ->
int option ->
int ->
int -> ('d, 'e, 'f) Bigarray.Array2.t -> int option -> int * int
end
module D :
sig
type prec = Bigarray.float64_elt
type num_type = float
type vec =
(float, Bigarray.float64_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
type rvec = Lacaml.D.vec
type mat =
(float, Bigarray.float64_elt, Bigarray.fortran_layout)
Bigarray.Array2.t
type trans3 = [ `N | `T ]
val prec : (float, Bigarray.float64_elt) Bigarray.kind
module Vec :
sig
val random :
?rnd_state:Random.State.t ->
?from:float -> ?range:float -> int -> Lacaml.D.vec
val sqr :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val sqrt :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val exp :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val log :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val sin :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val cos :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val create : int -> Lacaml.D.vec
val make : int -> Lacaml.D.num_type -> Lacaml.D.vec
val make0 : int -> Lacaml.D.vec
val init : int -> (int -> Lacaml.D.num_type) -> Lacaml.D.vec
val of_array : Lacaml.D.num_type array -> Lacaml.D.vec
val to_array : Lacaml.D.vec -> Lacaml.D.num_type array
val of_list : Lacaml.D.num_type list -> Lacaml.D.vec
val to_list : Lacaml.D.vec -> Lacaml.D.num_type list
val append : Lacaml.D.vec -> Lacaml.D.vec -> Lacaml.D.vec
val concat : Lacaml.D.vec list -> Lacaml.D.vec
val empty : Lacaml.D.vec
val linspace :
?y:Lacaml.D.vec ->
Lacaml.D.num_type -> Lacaml.D.num_type -> int -> Lacaml.D.vec
val logspace :
?y:Lacaml.D.vec ->
Lacaml.D.num_type ->
Lacaml.D.num_type -> ?base:float -> int -> Lacaml.D.vec
val dim : Lacaml.D.vec -> int
val map :
(Lacaml.D.num_type -> Lacaml.D.num_type) ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val iter :
(Lacaml.D.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val iteri :
(int -> Lacaml.D.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val fold :
('a -> Lacaml.D.num_type -> 'a) ->
'a -> ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> 'a
val fill :
?n:int ->
?ofsx:int ->
?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type -> unit
val rev : Lacaml.D.vec -> Lacaml.D.vec
val max :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type
val min :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type
val sum :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type
val prod :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type
val add_const :
Lacaml.D.num_type ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val sqr_nrm2 :
?stable:bool ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> float
val ssqr :
?n:int ->
?c:Lacaml.D.num_type ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type
val sort :
?cmp:(Lacaml.D.num_type -> Lacaml.D.num_type -> int) ->
?decr:bool ->
?n:int ->
?ofsp:int ->
?incp:int ->
?p:Lacaml.Common.int_vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val neg :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val reci :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val add :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.D.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.vec
val sub :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.D.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.vec
val mul :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.D.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.vec
val div :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.D.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.vec
val zpxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.D.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.vec
val zmxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.D.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.vec
val ssqr_diff :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int -> ?incy:int -> Lacaml.D.vec -> Lacaml.D.num_type
end
module Mat :
sig
val hilbert : int -> Lacaml.D.mat
val hankel : int -> Lacaml.D.mat
val pascal : int -> Lacaml.D.mat
val rosser : unit -> Lacaml.D.mat
val toeplitz : Lacaml.D.vec -> Lacaml.D.mat
val vandermonde : Lacaml.D.vec -> Lacaml.D.mat
val wilkinson : int -> Lacaml.D.mat
val random :
?rnd_state:Random.State.t ->
?from:float -> ?range:float -> int -> int -> Lacaml.D.mat
val create : int -> int -> Lacaml.D.mat
val make : int -> int -> Lacaml.D.num_type -> Lacaml.D.mat
val make0 : int -> int -> Lacaml.D.mat
val of_array : Lacaml.D.num_type array array -> Lacaml.D.mat
val to_array : Lacaml.D.mat -> Lacaml.D.num_type array array
val of_col_vecs : Lacaml.D.vec array -> Lacaml.D.mat
val to_col_vecs : Lacaml.D.mat -> Lacaml.D.vec array
val as_vec : Lacaml.D.mat -> Lacaml.D.vec
val init_rows :
int -> int -> (int -> int -> Lacaml.D.num_type) -> Lacaml.D.mat
val init_cols :
int -> int -> (int -> int -> Lacaml.D.num_type) -> Lacaml.D.mat
val create_mvec : int -> Lacaml.D.mat
val make_mvec : int -> Lacaml.D.num_type -> Lacaml.D.mat
val mvec_of_array : Lacaml.D.num_type array -> Lacaml.D.mat
val mvec_to_array : Lacaml.D.mat -> Lacaml.D.num_type array
val from_col_vec : Lacaml.D.vec -> Lacaml.D.mat
val from_row_vec : Lacaml.D.vec -> Lacaml.D.mat
val empty : Lacaml.D.mat
val identity : int -> Lacaml.D.mat
val of_diag : Lacaml.D.vec -> Lacaml.D.mat
val dim1 : Lacaml.D.mat -> int
val dim2 : Lacaml.D.mat -> int
val col : Lacaml.D.mat -> int -> Lacaml.D.vec
val copy_row :
?vec:Lacaml.D.vec -> Lacaml.D.mat -> int -> Lacaml.D.vec
val transpose_copy :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val transpose :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val detri :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val packed :
?up:bool ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.vec
val unpacked : ?up:bool -> ?n:int -> Lacaml.D.vec -> Lacaml.D.mat
val add_const :
Lacaml.D.num_type ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.D.mat ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val sum :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.num_type
val fill :
?m:int ->
?n:int ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.num_type -> unit
val copy_diag : Lacaml.D.mat -> Lacaml.D.vec
val trace : Lacaml.D.mat -> Lacaml.D.num_type
val scal :
?m:int ->
?n:int ->
Lacaml.D.num_type -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val scal_cols :
?m:int ->
?n:int ->
?ar:int ->
?ac:int -> Lacaml.D.mat -> ?ofs:int -> Lacaml.D.vec -> unit
val scal_rows :
?m:int ->
?n:int ->
?ofs:int ->
Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val axpy :
?m:int ->
?n:int ->
?alpha:Lacaml.D.num_type ->
?xr:int ->
?xc:int ->
x:Lacaml.D.mat -> ?yr:int -> ?yc:int -> Lacaml.D.mat -> unit
val gemm_diag :
?n:int ->
?k:int ->
?beta:Lacaml.D.num_type ->
?ofsy:int ->
?y:Lacaml.D.vec ->
?transa:Lacaml.D.trans3 ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?transb:Lacaml.D.trans3 ->
?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.vec
val syrk_diag :
?n:int ->
?k:int ->
?beta:Lacaml.D.num_type ->
?ofsy:int ->
?y:Lacaml.D.vec ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.D.num_type ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.vec
val gemm_trace :
?n:int ->
?k:int ->
?transa:Lacaml.D.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?transb:Lacaml.D.trans3 ->
?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.num_type
val syrk_trace :
?n:int ->
?k:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.num_type
val symm2_trace :
?n:int ->
?upa:bool ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?upb:bool ->
?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.num_type
val map :
(Lacaml.D.num_type -> Lacaml.D.num_type) ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.D.mat ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val fold_cols :
('a -> Lacaml.D.vec -> 'a) ->
?n:int -> ?ac:int -> 'a -> Lacaml.D.mat -> 'a
end
val pp_num : Format.formatter -> float -> unit
val pp_vec : (float, 'a) Lacaml.Io.pp_vec
val pp_mat : (float, 'a) Lacaml.Io.pp_mat
val dot :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.D.vec -> ?ofsy:int -> ?incy:int -> Lacaml.D.vec -> float
val asum : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> float
val sbmv :
?n:int ->
?k:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?up:bool ->
?alpha:float ->
?beta:float -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val ger :
?m:int ->
?n:int ->
?alpha:float ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec ->
?ofsy:int ->
?incy:int ->
Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val syr :
?n:int ->
?alpha:float ->
?up:bool ->
?ofsx:int ->
?incx:int ->
Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val lansy_min_lwork : int -> Lacaml.Common.norm4 -> int
val lansy :
?n:int ->
?up:bool ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> float
val lamch :
[ `B | `E | `L | `M | `N | `O | `P | `R | `S | `U ] -> float
val orgqr_min_lwork : n:int -> int
val orgqr_opt_lwork :
?m:int ->
?n:int ->
?k:int ->
tau:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val orgqr :
?m:int ->
?n:int ->
?k:int ->
?work:Lacaml.D.vec ->
tau:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val ormqr_opt_lwork :
?side:Lacaml.Common.side ->
?trans:Lacaml.Common.trans2 ->
?m:int ->
?n:int ->
?k:int ->
tau:Lacaml.D.vec ->
?ar:int ->
?ac:int -> Lacaml.D.mat -> ?cr:int -> ?cc:int -> Lacaml.D.mat -> int
val ormqr :
?side:Lacaml.Common.side ->
?trans:Lacaml.Common.trans2 ->
?m:int ->
?n:int ->
?k:int ->
?work:Lacaml.D.vec ->
tau:Lacaml.D.vec ->
?ar:int ->
?ac:int -> Lacaml.D.mat -> ?cr:int -> ?cc:int -> Lacaml.D.mat -> unit
val gecon_min_lwork : int -> int
val gecon_min_liwork : int -> int
val gecon :
?n:int ->
?norm:Lacaml.Common.norm2 ->
?anorm:float ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> float
val sycon_min_lwork : int -> int
val sycon_min_liwork : int -> int
val sycon :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?anorm:float ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> float
val pocon_min_lwork : int -> int
val pocon_min_liwork : int -> int
val pocon :
?n:int ->
?up:bool ->
?anorm:float ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> float
val gelsy_min_lwork : m:int -> n:int -> nrhs:int -> int
val gelsy_opt_lwork :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gelsy :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?rcond:float ->
?jpvt:Lacaml.Common.int32_vec ->
?work:Lacaml.D.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gelsd_min_lwork : m:int -> n:int -> nrhs:int -> int
val gelsd_opt_lwork :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gelsd_min_iwork : int -> int -> int
val gelsd :
?m:int ->
?n:int ->
?rcond:float ->
?ofss:int ->
?s:Lacaml.D.vec ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.D.vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gelss_min_lwork : m:int -> n:int -> nrhs:int -> int
val gelss_opt_lwork :
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?m:int ->
?n:int -> ?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gelss :
?m:int ->
?n:int ->
?rcond:float ->
?ofss:int ->
?s:Lacaml.D.vec ->
?work:Lacaml.D.vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gesvd_min_lwork : m:int -> n:int -> int
val gesvd_opt_lwork :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.D.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.D.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.D.mat -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val gesvd :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.D.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.D.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.D.mat ->
?work:Lacaml.D.vec ->
?ar:int ->
?ac:int -> Lacaml.D.mat -> Lacaml.D.vec * Lacaml.D.mat * Lacaml.D.mat
val gesdd_liwork : m:int -> n:int -> int
val gesdd_min_lwork :
?jobz:Lacaml.Common.svd_job -> m:int -> n:int -> unit -> int
val gesdd_opt_lwork :
?m:int ->
?n:int ->
?jobz:Lacaml.Common.svd_job ->
?s:Lacaml.D.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.D.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.D.mat ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val gesdd :
?m:int ->
?n:int ->
?jobz:Lacaml.Common.svd_job ->
?s:Lacaml.D.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.D.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.D.mat ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int -> Lacaml.D.mat -> Lacaml.D.vec * Lacaml.D.mat * Lacaml.D.mat
val geev_min_lwork : ?vectors:bool -> int -> int
val geev_opt_lwork :
?n:int ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.D.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.D.mat option ->
?ofswr:int ->
?wr:Lacaml.D.vec ->
?ofswi:int ->
?wi:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val geev :
?n:int ->
?work:Lacaml.D.vec ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.D.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.D.mat option ->
?ofswr:int ->
?wr:Lacaml.D.vec ->
?ofswi:int ->
?wi:Lacaml.D.vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
Lacaml.D.mat * Lacaml.D.vec * Lacaml.D.vec * Lacaml.D.mat
val syev_min_lwork : int -> int
val syev_opt_lwork :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val syev :
?n:int ->
?vectors:bool ->
?up:bool ->
?work:Lacaml.D.vec ->
?ofsw:int ->
?w:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.vec
val syevd_min_lwork : vectors:bool -> int -> int
val syevd_min_liwork : vectors:bool -> int -> int
val syevd_opt_lwork :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val syevd_opt_liwork :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val syevd_opt_l_li_work :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int * int
val syevd :
?n:int ->
?vectors:bool ->
?up:bool ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ofsw:int ->
?w:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.vec
val sbev_min_lwork : int -> int
val sbev :
?n:int ->
?kd:int ->
?zr:int ->
?zc:int ->
?z:Lacaml.D.mat ->
?up:bool ->
?work:Lacaml.D.vec ->
?ofsw:int ->
?w:Lacaml.D.vec ->
?abr:int -> ?abc:int -> Lacaml.D.mat -> Lacaml.D.vec
val syevr_min_lwork : int -> int
val syevr_min_liwork : int -> int
val syevr_opt_lwork :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val syevr_opt_liwork :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val syevr_opt_l_li_work :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int * int
val syevr :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float ->
?work:Lacaml.D.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ofsw:int ->
?w:Lacaml.D.vec ->
?zr:int ->
?zc:int ->
?z:Lacaml.D.mat ->
?isuppz:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
int * Lacaml.D.vec * Lacaml.D.mat * Lacaml.Common.int32_vec
val sygv_opt_lwork :
?n:int ->
?vectors:bool ->
?up:bool ->
?itype:[ `AB | `A_B | `BA ] ->
?ar:int ->
?ac:int -> Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val sygv :
?n:int ->
?vectors:bool ->
?up:bool ->
?work:Lacaml.D.vec ->
?ofsw:int ->
?w:Lacaml.D.vec ->
?itype:[ `AB | `A_B | `BA ] ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.vec
val sbgv :
?n:int ->
?ka:int ->
?kb:int ->
?zr:int ->
?zc:int ->
?z:Lacaml.D.mat ->
?up:bool ->
?work:Lacaml.D.vec ->
?ofsw:int ->
?w:Lacaml.D.vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.vec
val swap :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.D.vec -> ?ofsy:int -> ?incy:int -> Lacaml.D.vec -> unit
val scal :
?n:int ->
Lacaml.D.num_type -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val copy :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val nrm2 : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> float
val axpy :
?n:int ->
?alpha:Lacaml.D.num_type ->
?ofsx:int ->
?incx:int ->
x:Lacaml.D.vec -> ?ofsy:int -> ?incy:int -> Lacaml.D.vec -> unit
val iamax : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> int
val amax :
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.num_type
val gemv :
?m:int ->
?n:int ->
?beta:Lacaml.D.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?trans:Lacaml.D.trans3 ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val gbmv :
?m:int ->
?n:int ->
?beta:Lacaml.D.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?trans:Lacaml.D.trans3 ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
int -> int -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val symv :
?n:int ->
?beta:Lacaml.D.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.D.vec ->
?up:bool ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> Lacaml.D.vec
val trmv :
?n:int ->
?trans:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val trsv :
?n:int ->
?trans:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val tpmv :
?n:int ->
?trans:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.D.vec -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val tpsv :
?n:int ->
?trans:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.D.vec -> ?ofsx:int -> ?incx:int -> Lacaml.D.vec -> unit
val gemm :
?m:int ->
?n:int ->
?k:int ->
?beta:Lacaml.D.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.D.mat ->
?transa:Lacaml.D.trans3 ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?transb:Lacaml.D.trans3 ->
?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.mat
val symm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?beta:Lacaml.D.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.D.mat ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.mat
val trmm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val trsm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val syrk :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.D.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.D.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.D.num_type ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val syr2k :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.D.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.D.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.D.num_type ->
?ar:int ->
?ac:int ->
Lacaml.D.mat -> ?br:int -> ?bc:int -> Lacaml.D.mat -> Lacaml.D.mat
val lacpy :
?uplo:[ `L | `U ] ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.D.mat -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.mat
val lassq :
?n:int ->
?scale:float ->
?sumsq:float ->
?ofsx:int -> ?incx:int -> Lacaml.D.vec -> float * float
val larnv :
?idist:[ `Normal | `Uniform0 | `Uniform1 ] ->
?iseed:Lacaml.Common.int32_vec ->
?n:int -> ?ofsx:int -> ?x:Lacaml.D.vec -> unit -> Lacaml.D.vec
val lange_min_lwork : int -> Lacaml.Common.norm4 -> int
val lange :
?m:int ->
?n:int ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.D.rvec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> float
val lauum :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val getrf :
?m:int ->
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.Common.int32_vec
val getrs :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?trans:Lacaml.D.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val getri_min_lwork : int -> int
val getri_opt_lwork :
?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val getri :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val sytrf_min_lwork : unit -> int
val sytrf_opt_lwork :
?n:int -> ?up:bool -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val sytrf :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.D.vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.Common.int32_vec
val sytrs :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val sytri_min_lwork : int -> int
val sytri :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.D.vec -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val potrf :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int -> ?jitter:Lacaml.D.num_type -> Lacaml.D.mat -> unit
val potrs :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int ->
?br:int ->
?bc:int ->
?factorize:bool -> ?jitter:Lacaml.D.num_type -> Lacaml.D.mat -> unit
val potri :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
?factorize:bool -> ?jitter:Lacaml.D.num_type -> Lacaml.D.mat -> unit
val trtrs :
?n:int ->
?up:bool ->
?trans:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val tbtrs :
?n:int ->
?kd:int ->
?up:bool ->
?trans:Lacaml.D.trans3 ->
?diag:Lacaml.Common.diag ->
?abr:int ->
?abc:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val trtri :
?n:int ->
?up:bool ->
?diag:Lacaml.Common.diag ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> unit
val geqrf_opt_lwork :
?m:int -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.D.mat -> int
val geqrf_min_lwork : n:int -> int
val geqrf :
?m:int ->
?n:int ->
?work:Lacaml.D.vec ->
?tau:Lacaml.D.vec ->
?ar:int -> ?ac:int -> Lacaml.D.mat -> Lacaml.D.vec
val gesv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val gbsv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?abr:int ->
?abc:int ->
Lacaml.D.mat ->
int -> int -> ?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val gtsv :
?n:int ->
?ofsdl:int ->
Lacaml.D.vec ->
?ofsd:int ->
Lacaml.D.vec ->
?ofsdu:int ->
Lacaml.D.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val posv :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val ppsv :
?n:int ->
?up:bool ->
?ofsap:int ->
Lacaml.D.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val pbsv :
?n:int ->
?up:bool ->
?kd:int ->
?abr:int ->
?abc:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val ptsv :
?n:int ->
?ofsd:int ->
Lacaml.D.vec ->
?ofse:int ->
Lacaml.D.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val sysv_opt_lwork :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val sysv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.D.vec ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val spsv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ofsap:int ->
Lacaml.D.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
val gels_min_lwork : m:int -> n:int -> nrhs:int -> int
val gels_opt_lwork :
?m:int ->
?n:int ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> int
val gels :
?m:int ->
?n:int ->
?work:Lacaml.D.vec ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.D.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.D.mat -> unit
end
module S :
sig
type prec = Bigarray.float32_elt
type num_type = float
type vec =
(float, Bigarray.float32_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
type rvec = Lacaml.S.vec
type mat =
(float, Bigarray.float32_elt, Bigarray.fortran_layout)
Bigarray.Array2.t
type trans3 = [ `N | `T ]
val prec : (float, Bigarray.float32_elt) Bigarray.kind
module Vec :
sig
val random :
?rnd_state:Random.State.t ->
?from:float -> ?range:float -> int -> Lacaml.S.vec
val sqr :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val sqrt :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val exp :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val log :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val sin :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val cos :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val create : int -> Lacaml.S.vec
val make : int -> Lacaml.S.num_type -> Lacaml.S.vec
val make0 : int -> Lacaml.S.vec
val init : int -> (int -> Lacaml.S.num_type) -> Lacaml.S.vec
val of_array : Lacaml.S.num_type array -> Lacaml.S.vec
val to_array : Lacaml.S.vec -> Lacaml.S.num_type array
val of_list : Lacaml.S.num_type list -> Lacaml.S.vec
val to_list : Lacaml.S.vec -> Lacaml.S.num_type list
val append : Lacaml.S.vec -> Lacaml.S.vec -> Lacaml.S.vec
val concat : Lacaml.S.vec list -> Lacaml.S.vec
val empty : Lacaml.S.vec
val linspace :
?y:Lacaml.S.vec ->
Lacaml.S.num_type -> Lacaml.S.num_type -> int -> Lacaml.S.vec
val logspace :
?y:Lacaml.S.vec ->
Lacaml.S.num_type ->
Lacaml.S.num_type -> ?base:float -> int -> Lacaml.S.vec
val dim : Lacaml.S.vec -> int
val map :
(Lacaml.S.num_type -> Lacaml.S.num_type) ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val iter :
(Lacaml.S.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val iteri :
(int -> Lacaml.S.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val fold :
('a -> Lacaml.S.num_type -> 'a) ->
'a -> ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> 'a
val fill :
?n:int ->
?ofsx:int ->
?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type -> unit
val rev : Lacaml.S.vec -> Lacaml.S.vec
val max :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type
val min :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type
val sum :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type
val prod :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type
val add_const :
Lacaml.S.num_type ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val sqr_nrm2 :
?stable:bool ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> float
val ssqr :
?n:int ->
?c:Lacaml.S.num_type ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type
val sort :
?cmp:(Lacaml.S.num_type -> Lacaml.S.num_type -> int) ->
?decr:bool ->
?n:int ->
?ofsp:int ->
?incp:int ->
?p:Lacaml.Common.int_vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val neg :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val reci :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val add :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.S.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.vec
val sub :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.S.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.vec
val mul :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.S.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.vec
val div :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.S.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.vec
val zpxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.S.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.vec
val zmxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.S.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.vec
val ssqr_diff :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int -> ?incy:int -> Lacaml.S.vec -> Lacaml.S.num_type
end
module Mat :
sig
val hilbert : int -> Lacaml.S.mat
val hankel : int -> Lacaml.S.mat
val pascal : int -> Lacaml.S.mat
val rosser : unit -> Lacaml.S.mat
val toeplitz : Lacaml.S.vec -> Lacaml.S.mat
val vandermonde : Lacaml.S.vec -> Lacaml.S.mat
val wilkinson : int -> Lacaml.S.mat
val random :
?rnd_state:Random.State.t ->
?from:float -> ?range:float -> int -> int -> Lacaml.S.mat
val create : int -> int -> Lacaml.S.mat
val make : int -> int -> Lacaml.S.num_type -> Lacaml.S.mat
val make0 : int -> int -> Lacaml.S.mat
val of_array : Lacaml.S.num_type array array -> Lacaml.S.mat
val to_array : Lacaml.S.mat -> Lacaml.S.num_type array array
val of_col_vecs : Lacaml.S.vec array -> Lacaml.S.mat
val to_col_vecs : Lacaml.S.mat -> Lacaml.S.vec array
val as_vec : Lacaml.S.mat -> Lacaml.S.vec
val init_rows :
int -> int -> (int -> int -> Lacaml.S.num_type) -> Lacaml.S.mat
val init_cols :
int -> int -> (int -> int -> Lacaml.S.num_type) -> Lacaml.S.mat
val create_mvec : int -> Lacaml.S.mat
val make_mvec : int -> Lacaml.S.num_type -> Lacaml.S.mat
val mvec_of_array : Lacaml.S.num_type array -> Lacaml.S.mat
val mvec_to_array : Lacaml.S.mat -> Lacaml.S.num_type array
val from_col_vec : Lacaml.S.vec -> Lacaml.S.mat
val from_row_vec : Lacaml.S.vec -> Lacaml.S.mat
val empty : Lacaml.S.mat
val identity : int -> Lacaml.S.mat
val of_diag : Lacaml.S.vec -> Lacaml.S.mat
val dim1 : Lacaml.S.mat -> int
val dim2 : Lacaml.S.mat -> int
val col : Lacaml.S.mat -> int -> Lacaml.S.vec
val copy_row :
?vec:Lacaml.S.vec -> Lacaml.S.mat -> int -> Lacaml.S.vec
val transpose_copy :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val transpose :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val detri :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val packed :
?up:bool ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.vec
val unpacked : ?up:bool -> ?n:int -> Lacaml.S.vec -> Lacaml.S.mat
val add_const :
Lacaml.S.num_type ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.S.mat ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val sum :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.num_type
val fill :
?m:int ->
?n:int ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.num_type -> unit
val copy_diag : Lacaml.S.mat -> Lacaml.S.vec
val trace : Lacaml.S.mat -> Lacaml.S.num_type
val scal :
?m:int ->
?n:int ->
Lacaml.S.num_type -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val scal_cols :
?m:int ->
?n:int ->
?ar:int ->
?ac:int -> Lacaml.S.mat -> ?ofs:int -> Lacaml.S.vec -> unit
val scal_rows :
?m:int ->
?n:int ->
?ofs:int ->
Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val axpy :
?m:int ->
?n:int ->
?alpha:Lacaml.S.num_type ->
?xr:int ->
?xc:int ->
x:Lacaml.S.mat -> ?yr:int -> ?yc:int -> Lacaml.S.mat -> unit
val gemm_diag :
?n:int ->
?k:int ->
?beta:Lacaml.S.num_type ->
?ofsy:int ->
?y:Lacaml.S.vec ->
?transa:Lacaml.S.trans3 ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?transb:Lacaml.S.trans3 ->
?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.vec
val syrk_diag :
?n:int ->
?k:int ->
?beta:Lacaml.S.num_type ->
?ofsy:int ->
?y:Lacaml.S.vec ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.S.num_type ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.vec
val gemm_trace :
?n:int ->
?k:int ->
?transa:Lacaml.S.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?transb:Lacaml.S.trans3 ->
?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.num_type
val syrk_trace :
?n:int ->
?k:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.num_type
val symm2_trace :
?n:int ->
?upa:bool ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?upb:bool ->
?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.num_type
val map :
(Lacaml.S.num_type -> Lacaml.S.num_type) ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.S.mat ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val fold_cols :
('a -> Lacaml.S.vec -> 'a) ->
?n:int -> ?ac:int -> 'a -> Lacaml.S.mat -> 'a
end
val pp_num : Format.formatter -> float -> unit
val pp_vec : (float, 'a) Lacaml.Io.pp_vec
val pp_mat : (float, 'a) Lacaml.Io.pp_mat
val dot :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.S.vec -> ?ofsy:int -> ?incy:int -> Lacaml.S.vec -> float
val asum : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> float
val sbmv :
?n:int ->
?k:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?up:bool ->
?alpha:float ->
?beta:float -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val ger :
?m:int ->
?n:int ->
?alpha:float ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec ->
?ofsy:int ->
?incy:int ->
Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val syr :
?n:int ->
?alpha:float ->
?up:bool ->
?ofsx:int ->
?incx:int ->
Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val lansy_min_lwork : int -> Lacaml.Common.norm4 -> int
val lansy :
?n:int ->
?up:bool ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> float
val lamch :
[ `B | `E | `L | `M | `N | `O | `P | `R | `S | `U ] -> float
val orgqr_min_lwork : n:int -> int
val orgqr_opt_lwork :
?m:int ->
?n:int ->
?k:int ->
tau:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val orgqr :
?m:int ->
?n:int ->
?k:int ->
?work:Lacaml.S.vec ->
tau:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val ormqr_opt_lwork :
?side:Lacaml.Common.side ->
?trans:Lacaml.Common.trans2 ->
?m:int ->
?n:int ->
?k:int ->
tau:Lacaml.S.vec ->
?ar:int ->
?ac:int -> Lacaml.S.mat -> ?cr:int -> ?cc:int -> Lacaml.S.mat -> int
val ormqr :
?side:Lacaml.Common.side ->
?trans:Lacaml.Common.trans2 ->
?m:int ->
?n:int ->
?k:int ->
?work:Lacaml.S.vec ->
tau:Lacaml.S.vec ->
?ar:int ->
?ac:int -> Lacaml.S.mat -> ?cr:int -> ?cc:int -> Lacaml.S.mat -> unit
val gecon_min_lwork : int -> int
val gecon_min_liwork : int -> int
val gecon :
?n:int ->
?norm:Lacaml.Common.norm2 ->
?anorm:float ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> float
val sycon_min_lwork : int -> int
val sycon_min_liwork : int -> int
val sycon :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?anorm:float ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> float
val pocon_min_lwork : int -> int
val pocon_min_liwork : int -> int
val pocon :
?n:int ->
?up:bool ->
?anorm:float ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> float
val gelsy_min_lwork : m:int -> n:int -> nrhs:int -> int
val gelsy_opt_lwork :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gelsy :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?rcond:float ->
?jpvt:Lacaml.Common.int32_vec ->
?work:Lacaml.S.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gelsd_min_lwork : m:int -> n:int -> nrhs:int -> int
val gelsd_opt_lwork :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gelsd_min_iwork : int -> int -> int
val gelsd :
?m:int ->
?n:int ->
?rcond:float ->
?ofss:int ->
?s:Lacaml.S.vec ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.S.vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gelss_min_lwork : m:int -> n:int -> nrhs:int -> int
val gelss_opt_lwork :
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?m:int ->
?n:int -> ?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gelss :
?m:int ->
?n:int ->
?rcond:float ->
?ofss:int ->
?s:Lacaml.S.vec ->
?work:Lacaml.S.vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gesvd_min_lwork : m:int -> n:int -> int
val gesvd_opt_lwork :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.S.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.S.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.S.mat -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val gesvd :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.S.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.S.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.S.mat ->
?work:Lacaml.S.vec ->
?ar:int ->
?ac:int -> Lacaml.S.mat -> Lacaml.S.vec * Lacaml.S.mat * Lacaml.S.mat
val gesdd_liwork : m:int -> n:int -> int
val gesdd_min_lwork :
?jobz:Lacaml.Common.svd_job -> m:int -> n:int -> unit -> int
val gesdd_opt_lwork :
?m:int ->
?n:int ->
?jobz:Lacaml.Common.svd_job ->
?s:Lacaml.S.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.S.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.S.mat ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val gesdd :
?m:int ->
?n:int ->
?jobz:Lacaml.Common.svd_job ->
?s:Lacaml.S.vec ->
?ur:int ->
?uc:int ->
?u:Lacaml.S.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.S.mat ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int -> Lacaml.S.mat -> Lacaml.S.vec * Lacaml.S.mat * Lacaml.S.mat
val geev_min_lwork : ?vectors:bool -> int -> int
val geev_opt_lwork :
?n:int ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.S.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.S.mat option ->
?ofswr:int ->
?wr:Lacaml.S.vec ->
?ofswi:int ->
?wi:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val geev :
?n:int ->
?work:Lacaml.S.vec ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.S.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.S.mat option ->
?ofswr:int ->
?wr:Lacaml.S.vec ->
?ofswi:int ->
?wi:Lacaml.S.vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
Lacaml.S.mat * Lacaml.S.vec * Lacaml.S.vec * Lacaml.S.mat
val syev_min_lwork : int -> int
val syev_opt_lwork :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val syev :
?n:int ->
?vectors:bool ->
?up:bool ->
?work:Lacaml.S.vec ->
?ofsw:int ->
?w:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.vec
val syevd_min_lwork : vectors:bool -> int -> int
val syevd_min_liwork : vectors:bool -> int -> int
val syevd_opt_lwork :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val syevd_opt_liwork :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val syevd_opt_l_li_work :
?n:int ->
?vectors:bool ->
?up:bool -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int * int
val syevd :
?n:int ->
?vectors:bool ->
?up:bool ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ofsw:int ->
?w:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.vec
val sbev_min_lwork : int -> int
val sbev :
?n:int ->
?kd:int ->
?zr:int ->
?zc:int ->
?z:Lacaml.S.mat ->
?up:bool ->
?work:Lacaml.S.vec ->
?ofsw:int ->
?w:Lacaml.S.vec ->
?abr:int -> ?abc:int -> Lacaml.S.mat -> Lacaml.S.vec
val syevr_min_lwork : int -> int
val syevr_min_liwork : int -> int
val syevr_opt_lwork :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val syevr_opt_liwork :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val syevr_opt_l_li_work :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int * int
val syevr :
?n:int ->
?vectors:bool ->
?range:[ `A | `I of int * int | `V of float * float ] ->
?up:bool ->
?abstol:float ->
?work:Lacaml.S.vec ->
?iwork:Lacaml.Common.int32_vec ->
?ofsw:int ->
?w:Lacaml.S.vec ->
?zr:int ->
?zc:int ->
?z:Lacaml.S.mat ->
?isuppz:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
int * Lacaml.S.vec * Lacaml.S.mat * Lacaml.Common.int32_vec
val sygv_opt_lwork :
?n:int ->
?vectors:bool ->
?up:bool ->
?itype:[ `AB | `A_B | `BA ] ->
?ar:int ->
?ac:int -> Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val sygv :
?n:int ->
?vectors:bool ->
?up:bool ->
?work:Lacaml.S.vec ->
?ofsw:int ->
?w:Lacaml.S.vec ->
?itype:[ `AB | `A_B | `BA ] ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.vec
val sbgv :
?n:int ->
?ka:int ->
?kb:int ->
?zr:int ->
?zc:int ->
?z:Lacaml.S.mat ->
?up:bool ->
?work:Lacaml.S.vec ->
?ofsw:int ->
?w:Lacaml.S.vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.vec
val swap :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.S.vec -> ?ofsy:int -> ?incy:int -> Lacaml.S.vec -> unit
val scal :
?n:int ->
Lacaml.S.num_type -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val copy :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val nrm2 : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> float
val axpy :
?n:int ->
?alpha:Lacaml.S.num_type ->
?ofsx:int ->
?incx:int ->
x:Lacaml.S.vec -> ?ofsy:int -> ?incy:int -> Lacaml.S.vec -> unit
val iamax : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> int
val amax :
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.num_type
val gemv :
?m:int ->
?n:int ->
?beta:Lacaml.S.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?trans:Lacaml.S.trans3 ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val gbmv :
?m:int ->
?n:int ->
?beta:Lacaml.S.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?trans:Lacaml.S.trans3 ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
int -> int -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val symv :
?n:int ->
?beta:Lacaml.S.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.S.vec ->
?up:bool ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> Lacaml.S.vec
val trmv :
?n:int ->
?trans:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val trsv :
?n:int ->
?trans:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val tpmv :
?n:int ->
?trans:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.S.vec -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val tpsv :
?n:int ->
?trans:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.S.vec -> ?ofsx:int -> ?incx:int -> Lacaml.S.vec -> unit
val gemm :
?m:int ->
?n:int ->
?k:int ->
?beta:Lacaml.S.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.S.mat ->
?transa:Lacaml.S.trans3 ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?transb:Lacaml.S.trans3 ->
?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.mat
val symm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?beta:Lacaml.S.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.S.mat ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.mat
val trmm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val trsm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val syrk :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.S.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.S.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.S.num_type ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val syr2k :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.S.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.S.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.S.num_type ->
?ar:int ->
?ac:int ->
Lacaml.S.mat -> ?br:int -> ?bc:int -> Lacaml.S.mat -> Lacaml.S.mat
val lacpy :
?uplo:[ `L | `U ] ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.S.mat -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.mat
val lassq :
?n:int ->
?scale:float ->
?sumsq:float ->
?ofsx:int -> ?incx:int -> Lacaml.S.vec -> float * float
val larnv :
?idist:[ `Normal | `Uniform0 | `Uniform1 ] ->
?iseed:Lacaml.Common.int32_vec ->
?n:int -> ?ofsx:int -> ?x:Lacaml.S.vec -> unit -> Lacaml.S.vec
val lange_min_lwork : int -> Lacaml.Common.norm4 -> int
val lange :
?m:int ->
?n:int ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.S.rvec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> float
val lauum :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val getrf :
?m:int ->
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.Common.int32_vec
val getrs :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?trans:Lacaml.S.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val getri_min_lwork : int -> int
val getri_opt_lwork :
?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val getri :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val sytrf_min_lwork : unit -> int
val sytrf_opt_lwork :
?n:int -> ?up:bool -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val sytrf :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.S.vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.Common.int32_vec
val sytrs :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val sytri_min_lwork : int -> int
val sytri :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.S.vec -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val potrf :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int -> ?jitter:Lacaml.S.num_type -> Lacaml.S.mat -> unit
val potrs :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int ->
?br:int ->
?bc:int ->
?factorize:bool -> ?jitter:Lacaml.S.num_type -> Lacaml.S.mat -> unit
val potri :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
?factorize:bool -> ?jitter:Lacaml.S.num_type -> Lacaml.S.mat -> unit
val trtrs :
?n:int ->
?up:bool ->
?trans:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val tbtrs :
?n:int ->
?kd:int ->
?up:bool ->
?trans:Lacaml.S.trans3 ->
?diag:Lacaml.Common.diag ->
?abr:int ->
?abc:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val trtri :
?n:int ->
?up:bool ->
?diag:Lacaml.Common.diag ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> unit
val geqrf_opt_lwork :
?m:int -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.S.mat -> int
val geqrf_min_lwork : n:int -> int
val geqrf :
?m:int ->
?n:int ->
?work:Lacaml.S.vec ->
?tau:Lacaml.S.vec ->
?ar:int -> ?ac:int -> Lacaml.S.mat -> Lacaml.S.vec
val gesv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val gbsv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?abr:int ->
?abc:int ->
Lacaml.S.mat ->
int -> int -> ?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val gtsv :
?n:int ->
?ofsdl:int ->
Lacaml.S.vec ->
?ofsd:int ->
Lacaml.S.vec ->
?ofsdu:int ->
Lacaml.S.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val posv :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val ppsv :
?n:int ->
?up:bool ->
?ofsap:int ->
Lacaml.S.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val pbsv :
?n:int ->
?up:bool ->
?kd:int ->
?abr:int ->
?abc:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val ptsv :
?n:int ->
?ofsd:int ->
Lacaml.S.vec ->
?ofse:int ->
Lacaml.S.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val sysv_opt_lwork :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val sysv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.S.vec ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val spsv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ofsap:int ->
Lacaml.S.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
val gels_min_lwork : m:int -> n:int -> nrhs:int -> int
val gels_opt_lwork :
?m:int ->
?n:int ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> int
val gels :
?m:int ->
?n:int ->
?work:Lacaml.S.vec ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.S.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.S.mat -> unit
end
module Z :
sig
type prec = Bigarray.complex64_elt
type num_type = Complex.t
type vec =
(Complex.t, Bigarray.complex64_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
type rvec =
(float, Bigarray.float64_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
type mat =
(Complex.t, Bigarray.complex64_elt, Bigarray.fortran_layout)
Bigarray.Array2.t
type trans3 = [ `C | `N | `T ]
val prec : (Complex.t, Bigarray.complex64_elt) Bigarray.kind
module Vec :
sig
val random :
?rnd_state:Random.State.t ->
?re_from:float ->
?re_range:float ->
?im_from:float -> ?im_range:float -> int -> Lacaml.Z.vec
val create : int -> Lacaml.Z.vec
val make : int -> Lacaml.Z.num_type -> Lacaml.Z.vec
val make0 : int -> Lacaml.Z.vec
val init : int -> (int -> Lacaml.Z.num_type) -> Lacaml.Z.vec
val of_array : Lacaml.Z.num_type array -> Lacaml.Z.vec
val to_array : Lacaml.Z.vec -> Lacaml.Z.num_type array
val of_list : Lacaml.Z.num_type list -> Lacaml.Z.vec
val to_list : Lacaml.Z.vec -> Lacaml.Z.num_type list
val append : Lacaml.Z.vec -> Lacaml.Z.vec -> Lacaml.Z.vec
val concat : Lacaml.Z.vec list -> Lacaml.Z.vec
val empty : Lacaml.Z.vec
val linspace :
?y:Lacaml.Z.vec ->
Lacaml.Z.num_type -> Lacaml.Z.num_type -> int -> Lacaml.Z.vec
val logspace :
?y:Lacaml.Z.vec ->
Lacaml.Z.num_type ->
Lacaml.Z.num_type -> ?base:float -> int -> Lacaml.Z.vec
val dim : Lacaml.Z.vec -> int
val map :
(Lacaml.Z.num_type -> Lacaml.Z.num_type) ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val iter :
(Lacaml.Z.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val iteri :
(int -> Lacaml.Z.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val fold :
('a -> Lacaml.Z.num_type -> 'a) ->
'a -> ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> 'a
val fill :
?n:int ->
?ofsx:int ->
?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type -> unit
val rev : Lacaml.Z.vec -> Lacaml.Z.vec
val max :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val min :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val sum :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val prod :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val add_const :
Lacaml.Z.num_type ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val sqr_nrm2 :
?stable:bool ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> float
val ssqr :
?n:int ->
?c:Lacaml.Z.num_type ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val sort :
?cmp:(Lacaml.Z.num_type -> Lacaml.Z.num_type -> int) ->
?decr:bool ->
?n:int ->
?ofsp:int ->
?incp:int ->
?p:Lacaml.Common.int_vec ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val neg :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val reci :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val add :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.Z.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val sub :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.Z.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val mul :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.Z.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val div :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.Z.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val zpxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.Z.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val zmxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.Z.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val ssqr_diff :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
end
module Mat :
sig
val random :
?rnd_state:Random.State.t ->
?re_from:float ->
?re_range:float ->
?im_from:float -> ?im_range:float -> int -> int -> Lacaml.Z.mat
val create : int -> int -> Lacaml.Z.mat
val make : int -> int -> Lacaml.Z.num_type -> Lacaml.Z.mat
val make0 : int -> int -> Lacaml.Z.mat
val of_array : Lacaml.Z.num_type array array -> Lacaml.Z.mat
val to_array : Lacaml.Z.mat -> Lacaml.Z.num_type array array
val of_col_vecs : Lacaml.Z.vec array -> Lacaml.Z.mat
val to_col_vecs : Lacaml.Z.mat -> Lacaml.Z.vec array
val as_vec : Lacaml.Z.mat -> Lacaml.Z.vec
val init_rows :
int -> int -> (int -> int -> Lacaml.Z.num_type) -> Lacaml.Z.mat
val init_cols :
int -> int -> (int -> int -> Lacaml.Z.num_type) -> Lacaml.Z.mat
val create_mvec : int -> Lacaml.Z.mat
val make_mvec : int -> Lacaml.Z.num_type -> Lacaml.Z.mat
val mvec_of_array : Lacaml.Z.num_type array -> Lacaml.Z.mat
val mvec_to_array : Lacaml.Z.mat -> Lacaml.Z.num_type array
val from_col_vec : Lacaml.Z.vec -> Lacaml.Z.mat
val from_row_vec : Lacaml.Z.vec -> Lacaml.Z.mat
val empty : Lacaml.Z.mat
val identity : int -> Lacaml.Z.mat
val of_diag : Lacaml.Z.vec -> Lacaml.Z.mat
val dim1 : Lacaml.Z.mat -> int
val dim2 : Lacaml.Z.mat -> int
val col : Lacaml.Z.mat -> int -> Lacaml.Z.vec
val copy_row :
?vec:Lacaml.Z.vec -> Lacaml.Z.mat -> int -> Lacaml.Z.vec
val transpose_copy :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val transpose :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val detri :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val packed :
?up:bool ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.vec
val unpacked : ?up:bool -> ?n:int -> Lacaml.Z.vec -> Lacaml.Z.mat
val add_const :
Lacaml.Z.num_type ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.Z.mat ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val sum :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.num_type
val fill :
?m:int ->
?n:int ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.num_type -> unit
val copy_diag : Lacaml.Z.mat -> Lacaml.Z.vec
val trace : Lacaml.Z.mat -> Lacaml.Z.num_type
val scal :
?m:int ->
?n:int ->
Lacaml.Z.num_type -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val scal_cols :
?m:int ->
?n:int ->
?ar:int ->
?ac:int -> Lacaml.Z.mat -> ?ofs:int -> Lacaml.Z.vec -> unit
val scal_rows :
?m:int ->
?n:int ->
?ofs:int ->
Lacaml.Z.vec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val axpy :
?m:int ->
?n:int ->
?alpha:Lacaml.Z.num_type ->
?xr:int ->
?xc:int ->
x:Lacaml.Z.mat -> ?yr:int -> ?yc:int -> Lacaml.Z.mat -> unit
val gemm_diag :
?n:int ->
?k:int ->
?beta:Lacaml.Z.num_type ->
?ofsy:int ->
?y:Lacaml.Z.vec ->
?transa:Lacaml.Z.trans3 ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?transb:Lacaml.Z.trans3 ->
?br:int -> ?bc:int -> Lacaml.Z.mat -> Lacaml.Z.vec
val syrk_diag :
?n:int ->
?k:int ->
?beta:Lacaml.Z.num_type ->
?ofsy:int ->
?y:Lacaml.Z.vec ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.Z.num_type ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.vec
val gemm_trace :
?n:int ->
?k:int ->
?transa:Lacaml.Z.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?transb:Lacaml.Z.trans3 ->
?br:int -> ?bc:int -> Lacaml.Z.mat -> Lacaml.Z.num_type
val syrk_trace :
?n:int ->
?k:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.num_type
val symm2_trace :
?n:int ->
?upa:bool ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?upb:bool ->
?br:int -> ?bc:int -> Lacaml.Z.mat -> Lacaml.Z.num_type
val map :
(Lacaml.Z.num_type -> Lacaml.Z.num_type) ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.Z.mat ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val fold_cols :
('a -> Lacaml.Z.vec -> 'a) ->
?n:int -> ?ac:int -> 'a -> Lacaml.Z.mat -> 'a
end
val pp_num : Format.formatter -> Complex.t -> unit
val pp_vec : (Complex.t, 'a) Lacaml.Io.pp_vec
val pp_mat : (Complex.t, 'a) Lacaml.Io.pp_mat
val dotu :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val dotc :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.Z.vec ->
?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val lansy_min_lwork : int -> Lacaml.Common.norm4 -> int
val lansy :
?n:int ->
?up:bool ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.Z.rvec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> float
val gecon_min_lwork : int -> int
val gecon_min_lrwork : int -> int
val gecon :
?n:int ->
?norm:Lacaml.Common.norm2 ->
?anorm:float ->
?work:Lacaml.Z.vec ->
?rwork:Lacaml.Z.rvec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> float
val sycon_min_lwork : int -> int
val sycon :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?anorm:float ->
?work:Lacaml.Z.vec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> float
val pocon_min_lwork : int -> int
val pocon_min_lrwork : int -> int
val pocon :
?n:int ->
?up:bool ->
?anorm:float ->
?work:Lacaml.Z.vec ->
?rwork:Lacaml.Z.rvec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> float
val gesvd_min_lwork : m:int -> n:int -> int
val gesvd_lrwork : m:int -> n:int -> int
val gesvd_opt_lwork :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.Z.rvec ->
?ur:int ->
?uc:int ->
?u:Lacaml.Z.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.Z.mat -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> int
val gesvd :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.Z.rvec ->
?ur:int ->
?uc:int ->
?u:Lacaml.Z.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.Z.mat ->
?work:Lacaml.Z.vec ->
?rwork:Lacaml.Z.rvec ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat -> Lacaml.Z.rvec * Lacaml.Z.mat * Lacaml.Z.mat
val geev_min_lwork : int -> int
val geev_min_lrwork : int -> int
val geev_opt_lwork :
?n:int ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.Z.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.Z.mat option ->
?ofsw:int ->
?w:Lacaml.Z.vec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> int
val geev :
?n:int ->
?work:Lacaml.Z.vec ->
?rwork:Lacaml.Z.vec ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.Z.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.Z.mat option ->
?ofsw:int ->
?w:Lacaml.Z.vec ->
?ar:int ->
?ac:int -> Lacaml.Z.mat -> Lacaml.Z.mat * Lacaml.Z.vec * Lacaml.Z.mat
val swap :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.Z.vec -> ?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> unit
val scal :
?n:int ->
Lacaml.Z.num_type -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val copy :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val nrm2 : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> float
val axpy :
?n:int ->
?alpha:Lacaml.Z.num_type ->
?ofsx:int ->
?incx:int ->
x:Lacaml.Z.vec -> ?ofsy:int -> ?incy:int -> Lacaml.Z.vec -> unit
val iamax : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> int
val amax :
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.num_type
val gemv :
?m:int ->
?n:int ->
?beta:Lacaml.Z.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?trans:Lacaml.Z.trans3 ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val gbmv :
?m:int ->
?n:int ->
?beta:Lacaml.Z.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?trans:Lacaml.Z.trans3 ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
int -> int -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val symv :
?n:int ->
?beta:Lacaml.Z.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.Z.vec ->
?up:bool ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> Lacaml.Z.vec
val trmv :
?n:int ->
?trans:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val trsv :
?n:int ->
?trans:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val tpmv :
?n:int ->
?trans:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.Z.vec -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val tpsv :
?n:int ->
?trans:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.Z.vec -> ?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> unit
val gemm :
?m:int ->
?n:int ->
?k:int ->
?beta:Lacaml.Z.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.Z.mat ->
?transa:Lacaml.Z.trans3 ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?transb:Lacaml.Z.trans3 ->
?br:int -> ?bc:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val symm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?beta:Lacaml.Z.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.Z.mat ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val trmm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.Z.mat -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val trsm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.Z.mat -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val syrk :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.Z.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.Z.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.Z.num_type ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val syr2k :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.Z.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.Z.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.Z.num_type ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val lacpy :
?uplo:[ `L | `U ] ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.Z.mat -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.mat
val lassq :
?n:int ->
?scale:float ->
?sumsq:float ->
?ofsx:int -> ?incx:int -> Lacaml.Z.vec -> float * float
val larnv :
?idist:[ `Normal | `Uniform0 | `Uniform1 ] ->
?iseed:Lacaml.Common.int32_vec ->
?n:int -> ?ofsx:int -> ?x:Lacaml.Z.vec -> unit -> Lacaml.Z.vec
val lange_min_lwork : int -> Lacaml.Common.norm4 -> int
val lange :
?m:int ->
?n:int ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.Z.rvec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> float
val lauum :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val getrf :
?m:int ->
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Common.int32_vec
val getrs :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?trans:Lacaml.Z.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val getri_min_lwork : int -> int
val getri_opt_lwork :
?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> int
val getri :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.Z.vec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val sytrf_min_lwork : unit -> int
val sytrf_opt_lwork :
?n:int -> ?up:bool -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> int
val sytrf :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.Z.vec ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Common.int32_vec
val sytrs :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val sytri_min_lwork : int -> int
val sytri :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.Z.vec -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val potrf :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int -> ?jitter:Lacaml.Z.num_type -> Lacaml.Z.mat -> unit
val potrs :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int ->
?br:int ->
?bc:int ->
?factorize:bool -> ?jitter:Lacaml.Z.num_type -> Lacaml.Z.mat -> unit
val potri :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
?factorize:bool -> ?jitter:Lacaml.Z.num_type -> Lacaml.Z.mat -> unit
val trtrs :
?n:int ->
?up:bool ->
?trans:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val tbtrs :
?n:int ->
?kd:int ->
?up:bool ->
?trans:Lacaml.Z.trans3 ->
?diag:Lacaml.Common.diag ->
?abr:int ->
?abc:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val trtri :
?n:int ->
?up:bool ->
?diag:Lacaml.Common.diag ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> unit
val geqrf_opt_lwork :
?m:int -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.Z.mat -> int
val geqrf_min_lwork : n:int -> int
val geqrf :
?m:int ->
?n:int ->
?work:Lacaml.Z.vec ->
?tau:Lacaml.Z.vec ->
?ar:int -> ?ac:int -> Lacaml.Z.mat -> Lacaml.Z.vec
val gesv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val gbsv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?abr:int ->
?abc:int ->
Lacaml.Z.mat ->
int -> int -> ?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val gtsv :
?n:int ->
?ofsdl:int ->
Lacaml.Z.vec ->
?ofsd:int ->
Lacaml.Z.vec ->
?ofsdu:int ->
Lacaml.Z.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val posv :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val ppsv :
?n:int ->
?up:bool ->
?ofsap:int ->
Lacaml.Z.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val pbsv :
?n:int ->
?up:bool ->
?kd:int ->
?abr:int ->
?abc:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val ptsv :
?n:int ->
?ofsd:int ->
Lacaml.Z.vec ->
?ofse:int ->
Lacaml.Z.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val sysv_opt_lwork :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> int
val sysv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.Z.vec ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val spsv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ofsap:int ->
Lacaml.Z.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
val gels_min_lwork : m:int -> n:int -> nrhs:int -> int
val gels_opt_lwork :
?m:int ->
?n:int ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> int
val gels :
?m:int ->
?n:int ->
?work:Lacaml.Z.vec ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.Z.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.Z.mat -> unit
end
module C :
sig
type prec = Bigarray.complex32_elt
type num_type = Complex.t
type vec =
(Complex.t, Bigarray.complex32_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
type rvec =
(float, Bigarray.float32_elt, Bigarray.fortran_layout)
Bigarray.Array1.t
type mat =
(Complex.t, Bigarray.complex32_elt, Bigarray.fortran_layout)
Bigarray.Array2.t
type trans3 = [ `C | `N | `T ]
val prec : (Complex.t, Bigarray.complex32_elt) Bigarray.kind
module Vec :
sig
val random :
?rnd_state:Random.State.t ->
?re_from:float ->
?re_range:float ->
?im_from:float -> ?im_range:float -> int -> Lacaml.C.vec
val create : int -> Lacaml.C.vec
val make : int -> Lacaml.C.num_type -> Lacaml.C.vec
val make0 : int -> Lacaml.C.vec
val init : int -> (int -> Lacaml.C.num_type) -> Lacaml.C.vec
val of_array : Lacaml.C.num_type array -> Lacaml.C.vec
val to_array : Lacaml.C.vec -> Lacaml.C.num_type array
val of_list : Lacaml.C.num_type list -> Lacaml.C.vec
val to_list : Lacaml.C.vec -> Lacaml.C.num_type list
val append : Lacaml.C.vec -> Lacaml.C.vec -> Lacaml.C.vec
val concat : Lacaml.C.vec list -> Lacaml.C.vec
val empty : Lacaml.C.vec
val linspace :
?y:Lacaml.C.vec ->
Lacaml.C.num_type -> Lacaml.C.num_type -> int -> Lacaml.C.vec
val logspace :
?y:Lacaml.C.vec ->
Lacaml.C.num_type ->
Lacaml.C.num_type -> ?base:float -> int -> Lacaml.C.vec
val dim : Lacaml.C.vec -> int
val map :
(Lacaml.C.num_type -> Lacaml.C.num_type) ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val iter :
(Lacaml.C.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val iteri :
(int -> Lacaml.C.num_type -> unit) ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val fold :
('a -> Lacaml.C.num_type -> 'a) ->
'a -> ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> 'a
val fill :
?n:int ->
?ofsx:int ->
?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type -> unit
val rev : Lacaml.C.vec -> Lacaml.C.vec
val max :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type
val min :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type
val sum :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type
val prod :
?n:int ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type
val add_const :
Lacaml.C.num_type ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val sqr_nrm2 :
?stable:bool ->
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> float
val ssqr :
?n:int ->
?c:Lacaml.C.num_type ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type
val sort :
?cmp:(Lacaml.C.num_type -> Lacaml.C.num_type -> int) ->
?decr:bool ->
?n:int ->
?ofsp:int ->
?incp:int ->
?p:Lacaml.Common.int_vec ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val neg :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val reci :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val add :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.C.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.vec
val sub :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.C.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.vec
val mul :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.C.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.vec
val div :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.C.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.vec
val zpxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.C.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.vec
val zmxy :
?n:int ->
?ofsz:int ->
?incz:int ->
?z:Lacaml.C.vec ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.vec
val ssqr_diff :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.num_type
end
module Mat :
sig
val random :
?rnd_state:Random.State.t ->
?re_from:float ->
?re_range:float ->
?im_from:float -> ?im_range:float -> int -> int -> Lacaml.C.mat
val create : int -> int -> Lacaml.C.mat
val make : int -> int -> Lacaml.C.num_type -> Lacaml.C.mat
val make0 : int -> int -> Lacaml.C.mat
val of_array : Lacaml.C.num_type array array -> Lacaml.C.mat
val to_array : Lacaml.C.mat -> Lacaml.C.num_type array array
val of_col_vecs : Lacaml.C.vec array -> Lacaml.C.mat
val to_col_vecs : Lacaml.C.mat -> Lacaml.C.vec array
val as_vec : Lacaml.C.mat -> Lacaml.C.vec
val init_rows :
int -> int -> (int -> int -> Lacaml.C.num_type) -> Lacaml.C.mat
val init_cols :
int -> int -> (int -> int -> Lacaml.C.num_type) -> Lacaml.C.mat
val create_mvec : int -> Lacaml.C.mat
val make_mvec : int -> Lacaml.C.num_type -> Lacaml.C.mat
val mvec_of_array : Lacaml.C.num_type array -> Lacaml.C.mat
val mvec_to_array : Lacaml.C.mat -> Lacaml.C.num_type array
val from_col_vec : Lacaml.C.vec -> Lacaml.C.mat
val from_row_vec : Lacaml.C.vec -> Lacaml.C.mat
val empty : Lacaml.C.mat
val identity : int -> Lacaml.C.mat
val of_diag : Lacaml.C.vec -> Lacaml.C.mat
val dim1 : Lacaml.C.mat -> int
val dim2 : Lacaml.C.mat -> int
val col : Lacaml.C.mat -> int -> Lacaml.C.vec
val copy_row :
?vec:Lacaml.C.vec -> Lacaml.C.mat -> int -> Lacaml.C.vec
val transpose_copy :
?m:int ->
?n:int ->
?ar:int ->
?ac:int ->
Lacaml.C.mat -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val transpose :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.mat
val detri :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val packed :
?up:bool ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.vec
val unpacked : ?up:bool -> ?n:int -> Lacaml.C.vec -> Lacaml.C.mat
val add_const :
Lacaml.C.num_type ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.C.mat ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.mat
val sum :
?m:int ->
?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.num_type
val fill :
?m:int ->
?n:int ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.num_type -> unit
val copy_diag : Lacaml.C.mat -> Lacaml.C.vec
val trace : Lacaml.C.mat -> Lacaml.C.num_type
val scal :
?m:int ->
?n:int ->
Lacaml.C.num_type -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val scal_cols :
?m:int ->
?n:int ->
?ar:int ->
?ac:int -> Lacaml.C.mat -> ?ofs:int -> Lacaml.C.vec -> unit
val scal_rows :
?m:int ->
?n:int ->
?ofs:int ->
Lacaml.C.vec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val axpy :
?m:int ->
?n:int ->
?alpha:Lacaml.C.num_type ->
?xr:int ->
?xc:int ->
x:Lacaml.C.mat -> ?yr:int -> ?yc:int -> Lacaml.C.mat -> unit
val gemm_diag :
?n:int ->
?k:int ->
?beta:Lacaml.C.num_type ->
?ofsy:int ->
?y:Lacaml.C.vec ->
?transa:Lacaml.C.trans3 ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?transb:Lacaml.C.trans3 ->
?br:int -> ?bc:int -> Lacaml.C.mat -> Lacaml.C.vec
val syrk_diag :
?n:int ->
?k:int ->
?beta:Lacaml.C.num_type ->
?ofsy:int ->
?y:Lacaml.C.vec ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.C.num_type ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.vec
val gemm_trace :
?n:int ->
?k:int ->
?transa:Lacaml.C.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?transb:Lacaml.C.trans3 ->
?br:int -> ?bc:int -> Lacaml.C.mat -> Lacaml.C.num_type
val syrk_trace :
?n:int ->
?k:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.num_type
val symm2_trace :
?n:int ->
?upa:bool ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?upb:bool ->
?br:int -> ?bc:int -> Lacaml.C.mat -> Lacaml.C.num_type
val map :
(Lacaml.C.num_type -> Lacaml.C.num_type) ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.C.mat ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.mat
val fold_cols :
('a -> Lacaml.C.vec -> 'a) ->
?n:int -> ?ac:int -> 'a -> Lacaml.C.mat -> 'a
end
val pp_num : Format.formatter -> Complex.t -> unit
val pp_vec : (Complex.t, 'a) Lacaml.Io.pp_vec
val pp_mat : (Complex.t, 'a) Lacaml.Io.pp_mat
val dotu :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.num_type
val dotc :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.C.vec ->
?ofsy:int -> ?incy:int -> Lacaml.C.vec -> Lacaml.C.num_type
val lansy_min_lwork : int -> Lacaml.Common.norm4 -> int
val lansy :
?n:int ->
?up:bool ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.C.rvec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> float
val gecon_min_lwork : int -> int
val gecon_min_lrwork : int -> int
val gecon :
?n:int ->
?norm:Lacaml.Common.norm2 ->
?anorm:float ->
?work:Lacaml.C.vec ->
?rwork:Lacaml.C.rvec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> float
val sycon_min_lwork : int -> int
val sycon :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?anorm:float ->
?work:Lacaml.C.vec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> float
val pocon_min_lwork : int -> int
val pocon_min_lrwork : int -> int
val pocon :
?n:int ->
?up:bool ->
?anorm:float ->
?work:Lacaml.C.vec ->
?rwork:Lacaml.C.rvec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> float
val gesvd_min_lwork : m:int -> n:int -> int
val gesvd_lrwork : m:int -> n:int -> int
val gesvd_opt_lwork :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.C.rvec ->
?ur:int ->
?uc:int ->
?u:Lacaml.C.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.C.mat -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> int
val gesvd :
?m:int ->
?n:int ->
?jobu:Lacaml.Common.svd_job ->
?jobvt:Lacaml.Common.svd_job ->
?s:Lacaml.C.rvec ->
?ur:int ->
?uc:int ->
?u:Lacaml.C.mat ->
?vtr:int ->
?vtc:int ->
?vt:Lacaml.C.mat ->
?work:Lacaml.C.vec ->
?rwork:Lacaml.C.rvec ->
?ar:int ->
?ac:int ->
Lacaml.C.mat -> Lacaml.C.rvec * Lacaml.C.mat * Lacaml.C.mat
val geev_min_lwork : int -> int
val geev_min_lrwork : int -> int
val geev_opt_lwork :
?n:int ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.C.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.C.mat option ->
?ofsw:int ->
?w:Lacaml.C.vec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> int
val geev :
?n:int ->
?work:Lacaml.C.vec ->
?rwork:Lacaml.C.vec ->
?vlr:int ->
?vlc:int ->
?vl:Lacaml.C.mat option ->
?vrr:int ->
?vrc:int ->
?vr:Lacaml.C.mat option ->
?ofsw:int ->
?w:Lacaml.C.vec ->
?ar:int ->
?ac:int -> Lacaml.C.mat -> Lacaml.C.mat * Lacaml.C.vec * Lacaml.C.mat
val swap :
?n:int ->
?ofsx:int ->
?incx:int ->
x:Lacaml.C.vec -> ?ofsy:int -> ?incy:int -> Lacaml.C.vec -> unit
val scal :
?n:int ->
Lacaml.C.num_type -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val copy :
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val nrm2 : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> float
val axpy :
?n:int ->
?alpha:Lacaml.C.num_type ->
?ofsx:int ->
?incx:int ->
x:Lacaml.C.vec -> ?ofsy:int -> ?incy:int -> Lacaml.C.vec -> unit
val iamax : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> int
val amax :
?n:int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.num_type
val gemv :
?m:int ->
?n:int ->
?beta:Lacaml.C.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?trans:Lacaml.C.trans3 ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val gbmv :
?m:int ->
?n:int ->
?beta:Lacaml.C.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?trans:Lacaml.C.trans3 ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
int -> int -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val symv :
?n:int ->
?beta:Lacaml.C.num_type ->
?ofsy:int ->
?incy:int ->
?y:Lacaml.C.vec ->
?up:bool ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> Lacaml.C.vec
val trmv :
?n:int ->
?trans:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.C.mat -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val trsv :
?n:int ->
?trans:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.C.mat -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val tpmv :
?n:int ->
?trans:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.C.vec -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val tpsv :
?n:int ->
?trans:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?up:bool ->
?ofsap:int ->
Lacaml.C.vec -> ?ofsx:int -> ?incx:int -> Lacaml.C.vec -> unit
val gemm :
?m:int ->
?n:int ->
?k:int ->
?beta:Lacaml.C.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.C.mat ->
?transa:Lacaml.C.trans3 ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?transb:Lacaml.C.trans3 ->
?br:int -> ?bc:int -> Lacaml.C.mat -> Lacaml.C.mat
val symm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?beta:Lacaml.C.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.C.mat ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat -> ?br:int -> ?bc:int -> Lacaml.C.mat -> Lacaml.C.mat
val trmm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.C.mat -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val trsm :
?m:int ->
?n:int ->
?side:Lacaml.Common.side ->
?up:bool ->
?transa:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
a:Lacaml.C.mat -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val syrk :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.C.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.C.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.C.num_type ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.mat
val syr2k :
?n:int ->
?k:int ->
?up:bool ->
?beta:Lacaml.C.num_type ->
?cr:int ->
?cc:int ->
?c:Lacaml.C.mat ->
?trans:Lacaml.Common.trans2 ->
?alpha:Lacaml.C.num_type ->
?ar:int ->
?ac:int ->
Lacaml.C.mat -> ?br:int -> ?bc:int -> Lacaml.C.mat -> Lacaml.C.mat
val lacpy :
?uplo:[ `L | `U ] ->
?m:int ->
?n:int ->
?br:int ->
?bc:int ->
?b:Lacaml.C.mat -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.mat
val lassq :
?n:int ->
?scale:float ->
?sumsq:float ->
?ofsx:int -> ?incx:int -> Lacaml.C.vec -> float * float
val larnv :
?idist:[ `Normal | `Uniform0 | `Uniform1 ] ->
?iseed:Lacaml.Common.int32_vec ->
?n:int -> ?ofsx:int -> ?x:Lacaml.C.vec -> unit -> Lacaml.C.vec
val lange_min_lwork : int -> Lacaml.Common.norm4 -> int
val lange :
?m:int ->
?n:int ->
?norm:Lacaml.Common.norm4 ->
?work:Lacaml.C.rvec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> float
val lauum :
?up:bool -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val getrf :
?m:int ->
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.Common.int32_vec
val getrs :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?trans:Lacaml.C.trans3 ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val getri_min_lwork : int -> int
val getri_opt_lwork :
?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> int
val getri :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.C.vec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val sytrf_min_lwork : unit -> int
val sytrf_opt_lwork :
?n:int -> ?up:bool -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> int
val sytrf :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.C.vec ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.Common.int32_vec
val sytrs :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val sytri_min_lwork : int -> int
val sytri :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.C.vec -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val potrf :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int -> ?jitter:Lacaml.C.num_type -> Lacaml.C.mat -> unit
val potrs :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int ->
?br:int ->
?bc:int ->
?factorize:bool -> ?jitter:Lacaml.C.num_type -> Lacaml.C.mat -> unit
val potri :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
?factorize:bool -> ?jitter:Lacaml.C.num_type -> Lacaml.C.mat -> unit
val trtrs :
?n:int ->
?up:bool ->
?trans:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val tbtrs :
?n:int ->
?kd:int ->
?up:bool ->
?trans:Lacaml.C.trans3 ->
?diag:Lacaml.Common.diag ->
?abr:int ->
?abc:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val trtri :
?n:int ->
?up:bool ->
?diag:Lacaml.Common.diag ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> unit
val geqrf_opt_lwork :
?m:int -> ?n:int -> ?ar:int -> ?ac:int -> Lacaml.C.mat -> int
val geqrf_min_lwork : n:int -> int
val geqrf :
?m:int ->
?n:int ->
?work:Lacaml.C.vec ->
?tau:Lacaml.C.vec ->
?ar:int -> ?ac:int -> Lacaml.C.mat -> Lacaml.C.vec
val gesv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val gbsv :
?n:int ->
?ipiv:Lacaml.Common.int32_vec ->
?abr:int ->
?abc:int ->
Lacaml.C.mat ->
int -> int -> ?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val gtsv :
?n:int ->
?ofsdl:int ->
Lacaml.C.vec ->
?ofsd:int ->
Lacaml.C.vec ->
?ofsdu:int ->
Lacaml.C.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val posv :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val ppsv :
?n:int ->
?up:bool ->
?ofsap:int ->
Lacaml.C.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val pbsv :
?n:int ->
?up:bool ->
?kd:int ->
?abr:int ->
?abc:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val ptsv :
?n:int ->
?ofsd:int ->
Lacaml.C.vec ->
?ofse:int ->
Lacaml.C.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val sysv_opt_lwork :
?n:int ->
?up:bool ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> int
val sysv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?work:Lacaml.C.vec ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val spsv :
?n:int ->
?up:bool ->
?ipiv:Lacaml.Common.int32_vec ->
?ofsap:int ->
Lacaml.C.vec ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
val gels_min_lwork : m:int -> n:int -> nrhs:int -> int
val gels_opt_lwork :
?m:int ->
?n:int ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> int
val gels :
?m:int ->
?n:int ->
?work:Lacaml.C.vec ->
?trans:Lacaml.Common.trans2 ->
?ar:int ->
?ac:int ->
Lacaml.C.mat ->
?nrhs:int -> ?br:int -> ?bc:int -> Lacaml.C.mat -> unit
end
end