-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Linear Algebra on Typed Spaces
--
-- Please see README.org
@package LATS
@version 0.4.1
module LinearAlgebra.TypedSpaces.Vector.Mutable
module LinearAlgebra.TypedSpaces.Vector.Raw
module LinearAlgebra.TypedSpaces.Matrix.Raw
module LinearAlgebra.TypedSpaces.Classes
class Isomorphism a b
fw :: Isomorphism a b => a -> b
bw :: Isomorphism a b => b -> a
class CFunctor f => CZippable f
czipWith :: (CZippable f, CFun f a, CFun f b, CFun f c) => (a -> b -> c) -> f a -> f b -> f c
czipWith3 :: (CZippable f, CFun f a, CFun f b, CFun f c, CFun f d) => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
czipWith4 :: (CZippable f, CFun f a, CFun f b, CFun f c, CFun f d, CFun f e) => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e
class CFunctor f => CIndexed f i | f -> i
(!) :: (CIndexed f i, CFun f a) => f a -> i -> a
-- | The IsList class and its methods are intended to be used in
-- conjunction with the OverloadedLists extension.
class IsList l where type family Item l :: *
-- | The fromList function constructs the structure l from
-- the given list of Item l
fromList :: IsList l => [Item l] -> l
-- | The fromListN function takes the input list's length as a hint.
-- Its behaviour should be equivalent to fromList. The hint can be
-- used to construct the structure l more efficiently compared
-- to fromList. If the given hint does not equal to the input
-- list's length the behaviour of fromListN is not specified.
fromListN :: IsList l => Int -> [Item l] -> l
-- | The toList function extracts a list of Item l from the
-- structure l. It should satisfy fromList . toList = id.
toList :: IsList l => l -> [Item l]
module LinearAlgebra.TypedSpaces.Vector
newtype Vector i a
Vector :: Vector a -> Vector i a
[vector] :: Vector i a -> Vector a
instance (GHC.Classes.Eq a, Foreign.Storable.Storable a) => GHC.Classes.Eq (LinearAlgebra.TypedSpaces.Vector.Vector i a)
instance (GHC.Show.Show a, Foreign.Storable.Storable a) => GHC.Show.Show (LinearAlgebra.TypedSpaces.Vector.Vector i a)
instance LinearAlgebra.TypedSpaces.Classes.Isomorphism GHC.Types.Int i => LinearAlgebra.TypedSpaces.Classes.CIndexed (LinearAlgebra.TypedSpaces.Vector.Vector i) i
instance Control.ConstraintClasses.CFunctor (LinearAlgebra.TypedSpaces.Vector.Vector i)
instance Control.ConstraintClasses.CFoldable (LinearAlgebra.TypedSpaces.Vector.Vector i)
instance Foreign.Storable.Storable a => Data.Semigroup.Semigroup (LinearAlgebra.TypedSpaces.Vector.Vector i a)
instance Foreign.Storable.Storable a => GHC.Base.Monoid (LinearAlgebra.TypedSpaces.Vector.Vector i a)
instance LinearAlgebra.TypedSpaces.Classes.CZippable (LinearAlgebra.TypedSpaces.Vector.Vector i)
instance Foreign.Storable.Storable a => GHC.Exts.IsList (LinearAlgebra.TypedSpaces.Vector.Vector i a)
module LinearAlgebra.TypedSpaces.Matrix
newtype Matrix i j a
Matrix :: Matrix a -> Matrix i j a
[matrix] :: Matrix i j a -> Matrix a
-- | The member functions of this class facilitate writing values of
-- primitive types to raw memory (which may have been allocated with the
-- above mentioned routines) and reading values from blocks of raw
-- memory. The class, furthermore, includes support for computing the
-- storage requirements and alignment restrictions of storable types.
--
-- Memory addresses are represented as values of type Ptr
-- a, for some a which is an instance of class
-- Storable. The type argument to Ptr helps provide some
-- valuable type safety in FFI code (you can't mix pointers of different
-- types without an explicit cast), while helping the Haskell type system
-- figure out which marshalling method is needed for a given pointer.
--
-- All marshalling between Haskell and a foreign language ultimately
-- boils down to translating Haskell data structures into the binary
-- representation of a corresponding data structure of the foreign
-- language and vice versa. To code this marshalling in Haskell, it is
-- necessary to manipulate primitive data types stored in unstructured
-- memory blocks. The class Storable facilitates this manipulation
-- on all types for which it is instantiated, which are the standard
-- basic types of Haskell, the fixed size Int types
-- (Int8, Int16, Int32, Int64), the fixed
-- size Word types (Word8, Word16, Word32,
-- Word64), StablePtr, all types from
-- Foreign.C.Types, as well as Ptr.
class Storable a
-- | Supported matrix elements.
class Storable a => Element a
class (Container Vector t, Container Matrix t, Konst t Int Vector, Konst t (Int, Int) Matrix, CTrans t, Product t, Additive (Vector t), Additive (Matrix t), Linear t Vector, Linear t Matrix) => Numeric t
-- | Generic linear algebra functions for double precision real and complex
-- matrices.
--
-- (Single precision data can be converted using single and
-- double).
class (Numeric t, Convert t, Normed Matrix t, Normed Vector t, Floating t, Linear t Vector, Linear t Matrix, Additive (Vector t), Additive (Matrix t), (~) * (RealOf t) Double) => Field t
rows :: Matrix i j a -> Int
cols :: Matrix i j a -> Int
fromRows :: Element a => [Vector j a] -> Matrix i j a
toRows :: Element a => Matrix i j a -> [Vector j a]
fromColumns :: Element a => [Vector i a] -> Matrix i j a
toColumns :: Element a => Matrix i j a -> [Vector i a]
takeRows :: Element a => Int -> Matrix i j a -> Matrix i j a
takeColumns :: Element a => Int -> Matrix i j a -> Matrix i j a
tr :: (Transposable (Matrix a) (Matrix a)) => Matrix i j a -> Matrix j i a
newtype Sparse i j a
Sparse :: [((Int, Int), a)] -> Sparse i j a
[sparse] :: Sparse i j a -> [((Int, Int), a)]
toDense :: Sparse i j Double -> Matrix i j Double
addToSparse :: (Isomorphism Int i, Isomorphism Int j) => ((i, j), a) -> Sparse i j a -> Sparse i j a
(<.>) :: (Numeric a) => Vector i a -> Vector i a -> a
(#>) :: (Numeric a) => Matrix i j a -> Vector j a -> Vector i a
(<#) :: (Numeric a) => Vector i a -> Matrix i j a -> Vector j a
(#) :: (Numeric a) => Matrix i j a -> Matrix j k a -> Matrix i k a
inv :: (Field a) => Matrix i j a -> Matrix j i a
pinv :: (Field a) => Matrix i j a -> Matrix j i a
instance GHC.Show.Show a => GHC.Show.Show (LinearAlgebra.TypedSpaces.Matrix.Sparse i j a)
instance (GHC.Show.Show a, Internal.Matrix.Element a) => GHC.Show.Show (LinearAlgebra.TypedSpaces.Matrix.Matrix i j a)
instance (LinearAlgebra.TypedSpaces.Classes.Isomorphism GHC.Types.Int i, LinearAlgebra.TypedSpaces.Classes.Isomorphism GHC.Types.Int j) => LinearAlgebra.TypedSpaces.Classes.CIndexed (LinearAlgebra.TypedSpaces.Matrix.Matrix i j) (i, j)
instance Control.ConstraintClasses.CFunctor (LinearAlgebra.TypedSpaces.Matrix.Matrix i j)
module LinearAlgebra.TypedSpaces