# Data.Matrix.Numeric

Matrix operations with vector space dimensionalities enforced
at the type level. Uses operations from the Num interface.

(<#) : Num a => a -> Vect n a -> Vect n a

  Scale a numeric vector by a scalar

  Fixity
    Left associative, precedence 5
(<#>) : Num a => a -> Matrix n m a -> Matrix n m a

  Scale matrix by a scalar

  Fixity
    Left associative, precedence 5
(<&>) : Num a => Matrix h1 w1 a -> Matrix h2 w2 a -> Matrix (h1 * h2) (w1 * w2) a

  Tensor multiply (⊗) for numeric matrices

  Fixity
    Left associative, precedence 7
(</>) : Num a => Matrix n m a -> Vect m a -> Vect n a

  Matrix times a column vector

  Fixity
    Left associative, precedence 3
(<:>) : Num a => Vect n a -> Vect n a -> a

  Inner product of ring vectors

  Fixity
    Left associative, precedence 2
(<<>>) : Neg a => Matrix n n a -> Matrix n n a -> Matrix n n a

  Matrix commutator

  Fixity
    Left associative, precedence 2
(<>) : Num a => Matrix n k a -> Matrix k m a -> Matrix n m a

  Matrix multiplication

  Fixity
    Left associative, precedence 5
(<\>) : Num a => Vect n a -> Matrix n m a -> Vect m a

  Matrix times a row vector

  Fixity
    Left associative, precedence 3
(><) : Num a => Vect n a -> Vect m a -> Matrix n m a

  Outer product between numeric vectors

  Fixity
    Left associative, precedence 2
(>><<) : Num a => Matrix n n a -> Matrix n n a -> Matrix n n a

  Matrix anti-commutator

  Fixity
    Left associative, precedence 2
Id : Num a => Matrix d d a

  Identity matrix

(\&\) : Num a => Vect n a -> Vect m a -> Vect (n * m) a

  Tensor multiply (⊗) numeric vectors

  Fixity
    Left associative, precedence 7
altSum : Neg a => Vect n a -> a

  Alternating sum

basis : Num a => Fin d -> Vect d a

  Standard basis vector with one nonzero entry, numeric data type and vector-length unfixed

blockDiag : Num a => Matrix n n a -> Matrix m m a -> Matrix (n + m) (n + m) a

  Combine two matrices to make a new matrix in block diagonal form

det : Neg a => Matrix (S (S n)) (S (S n)) a -> a

  Determinant of a square matrix

det2 : Neg a => Matrix (fromInteger 2) (fromInteger 2) a -> a

  Determinant of a 2-by-2 matrix

diag_ : Num a => Vect n a -> Matrix n n a

  Square matrix from diagonal elements