SlapA linear algebra library with type-based static size checking for matrix operations. SLAP (Sized Linear Algebra Package) helps debug of your programs by detecting dimensional inconsistency, e.g., addition of two- and three- dimensional vectors, at compile time (instead of runtime) and at higher level (i.e., at a caller site rather than somewhere deep inside of a call stack). This library is a wrapper of LACAML, a binding of widely-used linear algebra libraries BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage) in FORTRAN. Many functions are compatible with the interface of LACAML. You can make use of SLAP by referring Slap.Common and the module corresponding to the precision and the number type you need:
open Slap.Common
open Slap.S (* 32-bit real BLAS and LAPACK functions *)
open Slap.D (* 64-bit real BLAS and LAPACK functions *)
open Slap.C (* 32-bit complex BLAS and LAPACK functions *)
open Slap.Z (* 64-bit complex BLAS and LAPACK functions *)To use this library, the following documentation may be useful to you:
The man pages are also available on your machine if you installed manpages.tgz or the corresponding package provided by your distribution.
Miscellaneous definitions.
include module type of struct include Slap_misc endtype cnt = Slap_misc.cntThe flag for contiguous vectors and matrices.
type dsc = Slap_misc.dscThe flag for discrete vectors and matrices.
val failwithf : ('a, unit, string, unit -> 'b) format4 -> 'afailwith + printf-style format
val invalid_argf : ('a, unit, string, unit -> 'b) format4 -> 'ainvalid_arg + printf-style format
module Size = Slap_sizeSizes (the dimensions of vectors and matrices).
module Vec = Slap_vecSized vectors.
module Mat = Slap_matSized matrices.
module Io = Slap_ioPretty printers.
module Version = Slap_versionThe version number of SLAP.
module Common = Slap_commonTypes, flags and functions commonly used in precision dependent modules.
module D = Slap_D64-bit real BLAS and LAPACK functions.
module S = Slap_S32-bit real BLAS and LAPACK functions.
module Z = Slap_Z64-bit complex BLAS and LAPACK functions.
module C = Slap_C32-bit complex BLAS and LAPACK functions.