package prbnmcn-linalg

  1. Overview
  2. Docs

Linalg: vectors

module Make (Repr : Basic_structures.Basic_intf.Lang.Empty) (Monad : Basic_structures.Basic_intf.Codegen_monad with type 'a m = 'a Repr.m) (S : Basic_structures.Basic_intf.Lang.Shape with type 'a m = 'a Repr.m) (B : Basic_structures.Basic_intf.Lang.Bool with type 'a m = 'a Repr.m) (R : Basic_structures.Basic_intf.Lang.Ring with type 'a m = 'a Repr.m) (R_storage : Basic_structures.Basic_intf.Lang.Storage with type 'a m = 'a Repr.m and type elt = R.t) (E : Basic_structures.Basic_intf.Lang.Exn with type 'a m = 'a Repr.m) (M : Basic_structures.Basic_intf.Lang.Sequencing with type 'a m = 'a Repr.m) : Intf.Vec with type 'a k = 'a Monad.t and type 'a m = 'a Repr.m 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 vector computations in this language.

Array_backed yields a module that allows to create vectors backed by arrays.

module Make_native (R : Basic_structures.Basic_intf.Lang.Ring with type 'a m = 'a) (R_storage : Basic_structures.Basic_intf.Lang.Storage with type 'a m = 'a and type elt = R.t) : Intf.Vec with type 'a k = 'a and type 'a m = 'a 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 specializes Make to native execution.

module Float : Intf.Vec with type 'a k = 'a and type 'a m = 'a 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 vectors

module Rational : Intf.Vec with type 'a k = 'a and type 'a m = 'a and type 'a shape = 'a Tensor.Int.t and type ('a, 'b) morphism = ('a, 'b) Tensor.Int.Morphism.t and type elt = Q.t

Rational allows to manipulate Q.t-valued vectors