Module Lacaml.Common

Types and functions common to all precision dependent sub-modules.

Lacaml.common contains definitions independent of the precision.

type trans2 = [
| `N
| `T
]

Transpose parameter (normal or transposed)

type side = [
| `L
| `R
]

Side parameter (left or right)

type diag = [
| `U
| `N
]

Diagonal parameter (unit or non-unit)

type norm2 = [
| `O
| `I
]

Type of 1-norm (`O) and infinity norm (`I)

type norm4 = [
| norm2
| `M
| `F
]

Type of 1-norm (`O), infinity norm (`I) and the Frobenius norm (`F). `M is the maximum of the absolute values (not a true matrix norm).

type svd_job = [
| `A
| `S
| `O
| `N
]

SVD computation flags

type schur_vectors = [
| `No_Schur_vectors
| `Compute_Schur_vectors
]

GEES job option

type eigen_value_sort = [
| `No_sort
| `Select_left_plane
| `Select_right_plane
| `Select_interior_disk
| `Select_exterior_disk
| `Select_custom of Complex.t ‑> bool
]

GEES eigenvalue sort option

exception InternalError of string

InternalError msg gets raised when BLAS or LAPACK exhibit undefined behaviour.

type int_vec = (int, Bigarray.int_elt, Bigarray.fortran_layout) Bigarray.Array1.t

Type of OCaml integer vectors.

val create_int_vec : int ‑> int_vec

create_int_vec n

type int32_vec = (int32, Bigarray.int32_elt, Bigarray.fortran_layout) Bigarray.Array1.t

Type of 32bit Fortran integer vectors.

val create_int32_vec : int ‑> int32_vec

create_int32_vec n

val mat_from_vec : ('a'b'c) Bigarray.Array1.t ‑> ('a'b'c) Bigarray.Array2.t

mat_from_vec a converts the vector a into a matrix with Array1.dim a rows and 1 column. The data is shared between the two matrices.

Common types used for vector and matrix operations

module Types : sig ... end