jonathanfishbein1 / linear-algebra / SquareMatrix

A module for Square Matrix

Types


type SquareMatrix a
    = SquareMatrix (Matrix a)

Square Matrix type


type alias InnerProductSpace a =
{ matrixSpace : MatrixSpace a
, innerProduct : SquareMatrix a -> SquareMatrix a -> Result String a
, norm : SquareMatrix a -> Result String (Real Basics.Float)
, distance : SquareMatrix a -> SquareMatrix a -> Result String (Real Basics.Float) 
}

Type to represent an Inner Product Space

Values

zeroSquareMatrix : Field a -> Basics.Int -> SquareMatrix a

Create square Matrix with n dimension filled with zeros

realMatrixInnerProductSpace : InnerProductSpace (Real Basics.Float)

Real Numbered Inner Product Space for Matrix

complexMatrixInnerProductSpace : InnerProductSpace (ComplexNumbers.ComplexNumber Basics.Float)

Complex Numbered Inner Product Space for Matrix

empty : SquareMatrix a

Monoid empty for SquareMatrix

Constructors

createMatrixFromColumnVectors : List (ColumnVector a) -> SquareMatrix a

Create a Matrix from a list of Column Vectors

identity : Field a -> Basics.Int -> SquareMatrix a

Create Square Identity Matrix with n dimension

Matrix Predicates and Properties

dimension : SquareMatrix a -> Basics.Int

Dimension of the matrix

isSquare : Matrix a -> Result String (Matrix a)

Determine whether a matirx is square

normReal : SquareMatrix (Real Basics.Float) -> Result String (Real Basics.Float)

Calculate the norm of a Matrix

normComplex : SquareMatrix (ComplexNumbers.ComplexNumber Basics.Float) -> Result String (Real Basics.Float)

Calculate the norm of a Matrix

distanceReal : SquareMatrix (Real Basics.Float) -> SquareMatrix (Real Basics.Float) -> Result String (Real Basics.Float)

Calculate distance between two vectors

isRightStochastic : SquareMatrix (Real Basics.Float) -> Result String (SquareMatrix (Real Basics.Float))

Predicate if matrix is right stochastic

isLeftStochastic : SquareMatrix (Real Basics.Float) -> Result String (SquareMatrix (Real Basics.Float))

Predicate if matrix is left stochastic

getDiagonalProduct : Field a -> SquareMatrix a -> Maybe a

Get the Product of the diagonal of a Matrix

subMatrix : Basics.Int -> Basics.Int -> Basics.Int -> Basics.Int -> SquareMatrix a -> SquareMatrix a

Calculate the submatrix given a starting and ending row and column index

transpose : SquareMatrix a -> SquareMatrix a

Transpose a Matrix

all : (a -> Basics.Bool) -> SquareMatrix a -> Basics.Bool

Predicate to determine if all values in the matric satisfy the given predicate

Unitary Operations

scalarMultiplication : Field a -> a -> SquareMatrix a -> SquareMatrix a

Scalar multiplication over a Square Matrix

adjoint : SquareMatrix (ComplexNumbers.ComplexNumber number) -> SquareMatrix (ComplexNumbers.ComplexNumber number)

Perform the adjoint operation on a Complex Numbered Matrix

map : (a -> b) -> SquareMatrix a -> SquareMatrix b

Map over a Matrix

Binary Operations

dotProduct : RowVector.InnerProductSpace a -> SquareMatrix a -> SquareMatrix a -> Result String a

Calculate the dot product of two Matricies

multiply : RowVector.InnerProductSpace a -> SquareMatrix a -> SquareMatrix a -> SquareMatrix a

Square Matrix Square Matrix multiplication

multiplyIfCan : RowVector.InnerProductSpace a -> SquareMatrix a -> SquareMatrix a -> Result String (SquareMatrix a)

Square Matrix Square Matrix multiplication

multiplyMatrixVector : RowVector.InnerProductSpace a -> SquareMatrix a -> ColumnVector a -> Result String (ColumnVector a)

Multiply a ColumnVector by a Matrix

add : Field a -> SquareMatrix a -> SquareMatrix a -> SquareMatrix a

Add two Square Matrices together

subtract : Field a -> SquareMatrix a -> SquareMatrix a -> SquareMatrix a

Subtract two Square Matrices

Manipulation

getAt : ( Basics.Int, Basics.Int ) -> SquareMatrix a -> Maybe a

Get the value in a matrix at the specified row and column

setAt : ( Basics.Int, Basics.Int ) -> a -> SquareMatrix a -> SquareMatrix a

Set the value in a Square Matrix at the specified row and column

Monoid

appendHorizontal : SquareMatrix a -> SquareMatrix a -> SquareMatrix a

Append Matricies together horizontally

Equality

equal : (a -> a -> Basics.Bool) -> Typeclasses.Classes.Equality.Equality (SquareMatrix a)

Compare two matricies using comparator

equalImplementation : (a -> a -> Basics.Bool) -> SquareMatrix a -> SquareMatrix a -> Basics.Bool

Compare two Matrices for equality

Matrix Forms

gaussJordan : RowVector.VectorSpace a -> SquareMatrix a -> SquareMatrix a

Function composition of Gaussian Elimination and Jordan Elimination

upperTriangle : RowVector.VectorSpace a -> SquareMatrix a -> SquareMatrix a

Put a matrix into Upper Triangular Form