knead-arithmetic-0.0.0.1: Linear algebra and interpolation using LLVM JIT

Safe HaskellNone

Data.Array.Knead.Arithmetic.LinearAlgebra

Documentation

type Scalar p coll a = Array p coll aSource

type Vector p coll dim a = Array p (coll, dim) aSource

type Matrix p coll rows cols a = Array p (coll, (rows, cols)) aSource

type PhysScalar coll a = Array coll aSource

type PhysVector coll dim a = Array (coll, dim) aSource

type PhysMatrix coll rows cols a = Array (coll, (rows, cols)) aSource

type IOScalar p coll a = IO (p -> IO (PhysScalar coll a))Source

type IOVector p coll dim a = IO (p -> IO (PhysVector coll dim a))Source

type IOMatrix p coll rows cols a = IO (p -> IO (PhysMatrix coll rows cols a))Source

dotProduct :: (C coll, C dim, PseudoRing a) => Vector p coll dim a -> Vector p coll dim a -> Scalar p coll aSource

outer :: (C coll, C rows, C cols, PseudoRing a) => Vector p coll rows a -> Vector p coll cols a -> Matrix p coll rows cols aSource

multiplyMatrixVector :: (C coll, C rows, C cols, PseudoRing a) => Matrix p coll rows cols a -> Vector p coll cols a -> Vector p coll rows aSource

multiplyMatrixMatrix :: (C coll, C rows, C glue, C cols, PseudoRing a) => Matrix p coll rows glue a -> Matrix p coll glue cols a -> Matrix p coll rows cols aSource

matrixInverseNewtonStepNaive :: (C coll, C rows, C cols, PseudoRing a) => Matrix p coll rows cols a -> Matrix p coll cols rows a -> Matrix p coll cols rows aSource

matrixInverseNewtonStep :: (C coll, C rows, C cols, PseudoRing a, C a, Storable a, C rows, Storable rows, C cols, Storable cols, C coll, Storable coll, Struct rows ~ rowsstruct, IsSized rowsstruct, Struct cols ~ colsstruct, IsSized colsstruct, Struct coll ~ collstruct, IsSized collstruct) => Matrix p coll rows cols a -> Matrix p coll cols rows a -> IOMatrix p coll cols rows aSource

nest :: (Integral i, Monad m) => i -> (a -> m a) -> a -> m aSource

matrixInverseNewton :: (C coll, C rows, C cols, PseudoRing a, C a, Storable a, C rows, Storable rows, C cols, Storable cols, C coll, Storable coll, Struct rows ~ rowsstruct, IsSized rowsstruct, Struct cols ~ colsstruct, IsSized colsstruct, Struct coll ~ collstruct, IsSized collstruct) => Int -> Matrix p coll rows cols a -> Matrix p coll cols rows a -> IOMatrix p coll cols rows aSource

double :: Additive a => Exp a -> Exp aSource

transpose :: (C coll, C rows, C cols) => Matrix p coll rows cols a -> Matrix p coll cols rows aSource

scaleRows :: (C coll, C rows, C cols, PseudoRing a) => Vector p coll rows a -> Matrix p coll rows cols a -> Matrix p coll rows cols aSource

balanceLeft :: Value val => val (a, (b, c)) -> val ((a, b), c)Source

balanceRight :: Value val => val ((a, b), c) -> val (a, (b, c))Source