Module Linalg.Mat
Linalg: matrices
module Make : functor (Repr : Basic_structures.Basic_intf.Lang.Empty) -> functor (Monad : Basic_structures.Basic_intf.Codegen_monad with type 'a m = 'a Repr.m) -> functor (S : Intf.Tensor with type 'a m = 'a Repr.m and type 'a k = 'a Monad.t) -> functor (B : Basic_structures.Basic_intf.Lang.Bool with type 'a m = 'a Repr.m) -> functor (R : Basic_structures.Basic_intf.Lang.Ring with type 'a m = 'a Repr.m) -> functor (R_storage : Basic_structures.Basic_intf.Lang.Storage with type 'a m = 'a Repr.m and type elt = R.t) -> functor (I_ring : Basic_structures.Basic_intf.Lang.Ring with type 'a m = 'a Repr.m and type t = S.pos) -> functor (E : Basic_structures.Basic_intf.Lang.Exn with type 'a m = 'a Repr.m) -> functor (M : Basic_structures.Basic_intf.Lang.Sequencing with type 'a m = 'a Repr.m) -> functor (P : Basic_structures.Basic_intf.Lang.Product with type 'a m = 'a Repr.m) -> Intf.Mat with type 'a k = 'a Monad.t and type 'a m = 'a Repr.m and type base_index = I_ring.t and type 'a shape = 'a S.t and type ('a, 'b) morphism = ('a, 'b) S.Morphism.t and type elt = R.t
Make
takes as input the signature of an object language and generates a module to perform matrix computations in this language.
module Array_backed_column_major : functor (Repr : Basic_structures.Basic_intf.Lang.Empty) -> functor (Monad : Basic_structures.Basic_intf.Codegen_monad with type 'a m = 'a Repr.m) -> functor (S : Intf.Tensor with type 'a m = 'a Repr.m) -> functor (B : Basic_structures.Basic_intf.Lang.Bool with type 'a m = 'a Repr.m) -> functor (R : Basic_structures.Basic_intf.Lang.Ring with type 'a m = 'a Repr.m and type t = S.pos) -> functor (R_ord : Basic_structures.Basic_intf.Lang.Infix_order with type 'a m = 'a Repr.m and type t = R.t) -> functor (A : Basic_structures.Basic_intf.Lang.Array with type index = R.t and type 'a m = 'a Repr.m) -> functor (E : Basic_structures.Basic_intf.Lang.Exn with type 'a m = 'a Repr.m) -> functor (P : Basic_structures.Basic_intf.Lang.Product with type 'a m = 'a Repr.m) -> functor (M : Basic_structures.Basic_intf.Lang.Sequencing with type 'a m = 'a Repr.m) -> sig ... end
Array_backed_column_major
yields a module that allows to create matrices backed by arrays. This module enforces a column-major layout for the matrix data (Fortran-style).
module Make_native : functor (R : Basic_structures.Basic_intf.Lang.Ring with type 'a m = 'a) -> functor (R_storage : Basic_structures.Basic_intf.Lang.Storage with type 'a m = 'a and type elt = R.t) -> Intf.Mat with type 'a k = 'a and type 'a m = 'a and type base_index = Tensor.Int.pos and type 'a shape = 'a Tensor.Int.t and type ('a, 'b) morphism = ('a, 'b) Tensor.Int.Morphism.t and type elt = R.t
Make_native
specializesMake
to native execution.
module Float : Intf.Mat with type 'a k = 'a and type 'a m = 'a and type base_index = Tensor.Int.pos and type 'a shape = 'a Tensor.Int.t and type ('a, 'b) morphism = ('a, 'b) Tensor.Int.Morphism.t and type elt = float
Float
allows to manipulate float-valued matrices
module Rational : Intf.Mat with type 'a k = 'a and type 'a m = 'a and type base_index = Tensor.Int.pos and type 'a shape = 'a Tensor.Int.t and type ('a, 'b) morphism = ('a, 'b) Tensor.Int.Morphism.t and type elt = Q.t
Float
allows to manipulateQ.t
-valued matrices