Lacaml.Utils
Utility functions
General auxiliary functions
val empty_int32_vec : Common.int32_vec
Preallocated strings (names)
Range checking
check_var_lt0 ~loc ~name var
checks whether integer variable var
with name name
at location loc
is lower than 0
.
Valueless vector checking and allocation functions (do not require a vector value as argument
raise_vec_min_dim ~loc ~vec_name ~dim ~min_dim
check_vec_min_dim ~loc ~vec_name ~dim ~min_dim
checks whether vector with name vec_name
and dimension dim
satisfies minimum dimension min_dim
.
raise_vec_bad_ofs ~loc ~vec_name ~ofs ~max_ofs
check_vec_ofs ~loc ~vec_name ~ofs ~max_ofs
checks whether vector offset ofs
for vector of name vec_name
is invalid (i.e. outside of 1..max_ofs
).
check_vec_inc ~loc ~vec_name inc
checks whether vector increment inc
for vector of name vec_name
is invalid (i.e. 0
).
raise_max_len ~loc ~len_name ~len ~max_len
val check_vec_dim :
loc:string ->
vec_name:string ->
dim:int ->
ofs:int ->
inc:int ->
n_name:string ->
n:int ->
unit
check_vec_dim ~loc ~vec_name ~dim ~ofs ~inc ~n_name ~n
checks the vector operation length in parameter n
with name n_name
at location loc
for vector with name vec_name
and dimension dim
given the operation offset ofs
and increment inc
.
val get_vec_n :
loc:string ->
vec_name:string ->
dim:int ->
ofs:int ->
inc:int ->
n_name:string ->
int option ->
int
get_vec_n ~loc ~vec_name ~dim ~ofs ~inc ~n_name n
checks or infers the vector operation length in the option parameter n
with name n_name
at location loc
for vector with name vec_name
and dimension dim
given the operation offset ofs
and increment inc
.
get_vec_min_dim ~loc ~vec_name ~ofs ~inc ~n
get_vec_start_stop ~ofsx ~incx ~n
Valueless matrix checking and allocation functions (do not require a matrix value as argument
val raise_bad_mat_ofs :
loc:string ->
name:string ->
ofs_name:string ->
ofs:int ->
max_ofs:int ->
'a
raise_bad_mat_ofs ~loc ~name ~ofs_name ~ofs ~max_ofs
raise_mat_bad_r ~loc ~mat_name ~r ~max_r
raise_mat_bad_c ~loc ~mat_name ~c ~max_c
check_mat_r ~loc ~vec_name ~r ~max_r
checks whether matrix row offset r
for vector of name vec_name
is invalid (i.e. outside of 1..max_r
).
check_mat_c ~loc ~vec_name ~c ~max_c
checks whether matrix column offset c
for vector of name vec_name
is invalid (i.e. outside of 1..max_c
).
val check_mat_rows :
loc:string ->
mat_name:string ->
dim1:int ->
r:int ->
p:int ->
param_name:string ->
unit
check_mat_rows ~loc ~mat_name ~dim1 ~r ~p ~param_name
checks the matrix row operation length in parameter p
with name param_name
at location loc
for matrix with name mat_name
and dimension dim1
given the operation row r
.
check_mat_m ~loc ~mat_name ~dim1 ~r ~m
checks the matrix row operation length in parameter m
at location loc
for matrix with name mat_name
and dimension dim1
given the operation row r
.
val check_mat_cols :
loc:string ->
mat_name:string ->
dim2:int ->
c:int ->
p:int ->
param_name:string ->
unit
check_mat_cols ~loc ~mat_name ~dim2 ~c ~p ~param_name
checks the matrix column operation length in parameter p
with name param_name
at location loc
for matrix with name mat_name
and dimension dim2
given the operation column c
.
check_mat_n ~loc ~mat_name ~dim2 ~c ~n
checks the matrix column operation length in parameter n
at location loc
for matrix with name mat_name
and dimension dim2
given the operation column c
.
val check_mat_mn :
loc:string ->
mat_name:string ->
dim1:int ->
dim2:int ->
r:int ->
c:int ->
m:int ->
n:int ->
unit
check_mat_mn ~loc ~mat_name ~dim1 ~dim2 ~r ~c ~m ~n
checks the matrix operation lengths in parameters m
and n
at location loc
for matrix with name mat_name
and dimensions dim1
and dim2
given the operation row r
and column c
.
val get_mat_rows :
loc:string ->
mat_name:string ->
dim1:int ->
r:int ->
p:int option ->
param_name:string ->
int
get_mat_rows ~loc ~mat_name ~dim1 ~r p ~param_name
checks or infers the matrix row operation length in the option parameter p
with name param_name
at location loc
for matrix with name mat_name
and dimension dim1
given the row operation offset r
.
val get_mat_dim1 :
loc:string ->
mat_name:string ->
dim1:int ->
r:int ->
m:int option ->
m_name:string ->
int
get_mat_dim1 ~loc ~mat_name ~dim1 ~r ~m ~m_name
checks or infers the matrix row operation length in the option parameter m
with name m_name
at location loc
for matrix with name mat_name
and dimension dim1
given the row operation offset r
.
get_mat_m ~loc ~mat_name ~dim1 ~r ~m
checks or infers the matrix row operation length in the option parameter m
at location loc
for matrix with name mat_name
and dimension dim1
given the row operation offset r
.
val get_mat_cols :
loc:string ->
mat_name:string ->
dim2:int ->
c:int ->
p:int option ->
param_name:string ->
int
get_mat_cols ~loc ~mat_name ~dim2 ~c ~param_name p
checks or infers the matrix column operation length in the option parameter p
with name param_name
at location loc
for matrix with name mat_name
and dimension dim2
given the column operation offset c
.
val get_mat_dim2 :
loc:string ->
mat_name:string ->
dim2:int ->
c:int ->
n:int option ->
n_name:string ->
int
get_mat_dim2 ~loc ~mat_name ~dim2 ~c ~n ~n_name
checks or infers the matrix column operation length in the option parameter n
with name n_name
at location loc
for matrix with name mat_name
and dimension dim2
given the column operation offset c
.
get_mat_n ~loc ~mat_name ~dim2 ~c ~n
checks or infers the matrix column operation length in the option parameter n
at location loc
for matrix with name mat_name
and dimension dim2
given the column operation offset c
.
get_mat_min_dim1 ~loc ~mat_name ~r ~m
get_mat_min_dim2 ~loc ~mat_name ~c ~n
check_mat_min_dim1 ~loc ~mat_name ~dim1 ~min_dim1
checks the minimum row dimension min_dim1
of a matrix with name mat_name
at location loc
given its row dimension dim1
.
check_mat_min_dim2 ~loc ~mat_name ~dim2 ~min_dim2
checks the minimum column dimension min_dim2
of a matrix with name mat_name
at location loc
given its column dimension dim2
.
val check_mat_min_dims :
loc:string ->
mat_name:string ->
dim1:int ->
dim2:int ->
min_dim1:int ->
min_dim2:int ->
unit
check_mat_min_dim2 ~loc ~mat_name ~dim2 ~min_dim2
checks the minimum column dimension min_dim2
of a matrix with name mat_name
at location loc
given its column dimension dim2
.
(Old) Vector checking and allocation functions
check_vec_is_perm loc vec_name vec n
checks whether vec
is a valid permutation vector.
val get_dim_vec :
string ->
string ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t ->
string ->
int option ->
int
get_dim_vec loc vec_name ofs inc vec n_name n
if the dimension n
is given, check that the vector vec
is big enough, otherwise return the maximal n
for the given vector vec
.
(Old) Matrix checking and allocation functions
module Mat_patt : sig ... end
val geev_gen_get_params :
string ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t ->
(int -> int -> ('a, 'b, 'c) Stdlib.Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
int option ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option option ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option option ->
int
* int
* int
* ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
* char
* int
* int
* ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
* char
* bool
val gXmv_get_params :
string ->
(int -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t) ->
int ->
int ->
int option ->
int option ->
('d, 'e, 'f) Stdlib.Bigarray.Array1.t ->
int option ->
int option ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
[< `C | `N | `T N ] ->
int * int * int * int * ('a, 'b, 'c) Stdlib.Bigarray.Array1.t * char
val symv_get_params :
string ->
(int -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t) ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
int option ->
int option ->
int option ->
('g, 'h, 'i) Stdlib.Bigarray.Array1.t ->
int option ->
int option ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
bool ->
int * int * int * int * int * ('a, 'b, 'c) Stdlib.Bigarray.Array1.t * char
val gemm_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Stdlib.Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
[< `C | `N | `T N ] ->
int ->
int ->
('g, 'h, 'i) Stdlib.Bigarray.Array2.t ->
int ->
[< `C | `N | `T N ] ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option ->
int option ->
int option ->
int option ->
int * int * int * char * char * ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
val symm_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Stdlib.Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
int ->
int ->
('g, 'h, 'i) Stdlib.Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option ->
int option ->
int option ->
[< `L | `R L ] ->
bool ->
int * int * char * char * ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
val syrk_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Stdlib.Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option ->
int option ->
int option ->
bool ->
[< `C | `N | `T N ] ->
int * int * char * char * ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
val syr2k_get_params :
string ->
(int -> int -> ('a, 'b, 'c) Stdlib.Bigarray.Array2.t) ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
int ->
int ->
('g, 'h, 'i) Stdlib.Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option ->
int option ->
int option ->
bool ->
[< `C | `N | `T N ] ->
int * int * char * char * ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
val getrf_get_ipiv :
string ->
(int32, Stdlib.Bigarray.int32_elt, Stdlib.Bigarray.fortran_layout)
Stdlib.Bigarray.Array1.t
option ->
int ->
int ->
Common.int32_vec
val sytrf_get_ipiv :
string ->
(int32, Stdlib.Bigarray.int32_elt, Stdlib.Bigarray.fortran_layout)
Stdlib.Bigarray.Array1.t
option ->
int ->
Common.int32_vec
val gees_get_params_generic :
string ->
(int -> int -> ('a, 'b, 'c) Stdlib.Bigarray.Array2.t) ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t ->
[< `Compute_Schur_vectors | `No_Schur_vectors ] ->
[< `No_sort
| `Select_custom of 'd -> bool
| `Select_exterior_disk
| `Select_interior_disk
| `Select_left_plane
| `Select_right_plane ] ->
int option ->
int ->
int ->
('e, 'f, 'g) Stdlib.Bigarray.Array2.t ->
int ->
int ->
('a, 'b, 'c) Stdlib.Bigarray.Array2.t option ->
char
* char
* int
* ('d ->
bool)
* int
* ('a, 'b, 'c) Stdlib.Bigarray.Array2.t
val gees_get_params_real :
string ->
(int -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t) ->
(int -> int -> ('d, 'e, 'f) Stdlib.Bigarray.Array2.t) ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
[< `Compute_Schur_vectors | `No_Schur_vectors ] ->
[< `No_sort
| `Select_custom of 'g -> bool
| `Select_exterior_disk
| `Select_interior_disk
| `Select_left_plane
| `Select_right_plane ] ->
int option ->
int ->
int ->
('h, 'i, 'j) Stdlib.Bigarray.Array2.t ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t option ->
char
* char
* int
* ('g ->
bool)
* int
* ('d, 'e, 'f) Stdlib.Bigarray.Array2.t
* ('a, 'b, 'c) Stdlib.Bigarray.Array1.t
* ('a, 'b, 'c) Stdlib.Bigarray.Array1.t
val gees_get_params_complex :
string ->
(int -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t) ->
(int -> int -> ('d, 'e, 'f) Stdlib.Bigarray.Array2.t) ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t ->
[< `Compute_Schur_vectors | `No_Schur_vectors ] ->
[< `No_sort
| `Select_custom of 'g -> bool
| `Select_exterior_disk
| `Select_interior_disk
| `Select_left_plane
| `Select_right_plane ] ->
int option ->
int ->
int ->
('h, 'i, 'j) Stdlib.Bigarray.Array2.t ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t option ->
char
* char
* int
* ('g ->
bool)
* int
* ('d, 'e, 'f) Stdlib.Bigarray.Array2.t
* ('a, 'b, 'c) Stdlib.Bigarray.Array1.t
val gesvd_get_params :
string ->
(int -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t) ->
(int -> int -> ('d, 'e, 'f) Stdlib.Bigarray.Array2.t) ->
[< `A | `N | `O | `S ] ->
[< `A | `N | `O | `S ] ->
int option ->
int option ->
int ->
int ->
('g, 'h, 'i) Stdlib.Bigarray.Array2.t ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t option ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t option ->
char
* char
* int
* int
* ('a, 'b, 'c) Stdlib.Bigarray.Array1.t
* ('d, 'e, 'f) Stdlib.Bigarray.Array2.t
* ('d, 'e, 'f) Stdlib.Bigarray.Array2.t
val gesdd_get_params :
string ->
(int -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t) ->
(int -> int -> ('d, 'e, 'f) Stdlib.Bigarray.Array2.t) ->
[< `A | `N | `O | `S ] ->
int option ->
int option ->
int ->
int ->
('g, 'h, 'i) Stdlib.Bigarray.Array2.t ->
('a, 'b, 'c) Stdlib.Bigarray.Array1.t option ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t option ->
int ->
int ->
('d, 'e, 'f) Stdlib.Bigarray.Array2.t option ->
char
* int
* int
* ('a, 'b, 'c) Stdlib.Bigarray.Array1.t
* ('d, 'e, 'f) Stdlib.Bigarray.Array2.t
* ('d, 'e, 'f) Stdlib.Bigarray.Array2.t
val xxsv_get_ipiv :
string ->
(int32, Stdlib.Bigarray.int32_elt, Stdlib.Bigarray.fortran_layout)
Stdlib.Bigarray.Array1.t
option ->
int ->
Common.int32_vec