[{"name":"Matrix","comment":" A module for Matrix\n\n\n# Types\n\n@docs Matrix\n@docs RowVector\n@docs ColumnVector\n@docs Solution\n@docs VectorSpace\n\n@docs addRealMatrices\n@docs addComplexMatrices\n@docs sumRealMatrices\n@docs sumComplexMatrices\n@docs map\n@docs equal\n@docs transpose\n@docs conjugate\n@docs adjoint\n@docs apply\n@docs liftA2\n@docs multiplyComplexMatrices\n@docs multiplyRealMatrices\n@docs identityMatrix\n@docs gaussJordan\n@docs gaussianReduce\n@docs isHermitian\n@docs isSymmetric\n@docs jordanReduce\n@docs areLinearlyIndependent\n@docs multiplyRealVectorRealMatrix\n@docs nullSpace\n@docs solve\n@docs areBasis\n@docs basisOfVectorSpace\n@docs doesSetSpanSpace\n@docs mDimension\n@docs nDimension\n@docs solveMatrix\n@docs foldl\n@docs matrixConcatHorizontal\n@docs matrixConcatVertical\n@docs matrixEmpty\n@docs pure\n@docs bind\n@docs determinant\n@docs getAt\n@docs print\n@docs read\n@docs setAt\n@docs upperTriangle\n\n","unions":[{"name":"ColumnVector","comment":" Column Vector\n","args":["a"],"cases":[["ColumnVector",["Vector.Vector a"]]]},{"name":"Matrix","comment":" Matrix type\n","args":["a"],"cases":[["Matrix",["List.List (Matrix.RowVector a)"]]]},{"name":"RowVector","comment":" Row Vector\n","args":["a"],"cases":[["RowVector",["Vector.Vector a"]]]},{"name":"Solution","comment":" Type to represent result of Gauss-Jordan reduction\n","args":[],"cases":[["UniqueSolution",["Matrix.ColumnVector Basics.Float"]],["InfiniteSolutions",["{ nullity : Basics.Int, rank : Basics.Int }"]],["NoUniqueSolution",["String.String"]]]},{"name":"VectorSpace","comment":" Type to represent vector space such as R, R2, R3\n","args":[],"cases":[["VectorSpace",["Basics.Int"]]]}],"aliases":[],"values":[{"name":"addComplexMatrices","comment":" Add two Complex Matrices together\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number)"},{"name":"addRealMatrices","comment":" Add two Real Matrices together\n","type":"Matrix.Matrix number -> Matrix.Matrix number -> Matrix.Matrix number"},{"name":"adjoint","comment":" Perform the adjoint operation on a Complex Numbered Matrix\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number)"},{"name":"apply","comment":" Apply for Matrix\n","type":"Matrix.Matrix (a -> b) -> Matrix.Matrix a -> Matrix.Matrix b"},{"name":"areBasis","comment":" Determine whether list of vectors are a basis for a space\n","type":"Matrix.VectorSpace -> List.List (Matrix.RowVector Basics.Float) -> Basics.Bool"},{"name":"areLinearlyIndependent","comment":" Predicate to determine if a list of Vectors are linearly independent\n","type":"List.List (Matrix.RowVector Basics.Float) -> Basics.Bool"},{"name":"basisOfVectorSpace","comment":" Determine the basis vectors of a vector space\n","type":"Matrix.VectorSpace -> List.List (Matrix.RowVector Basics.Float) -> List.List (Matrix.RowVector Basics.Float)"},{"name":"bind","comment":" Monad bind for Matrix\n","type":"Matrix.Matrix a -> (a -> Matrix.Matrix b) -> Matrix.Matrix b"},{"name":"conjugate","comment":" Take the complex conjugate of a Complex Numbered Matrix\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number)"},{"name":"determinant","comment":" Try to calculate the determinant\n","type":"Matrix.Matrix Basics.Float -> Maybe.Maybe Basics.Float"},{"name":"doesSetSpanSpace","comment":" Determine whether list of vectors spans a space\n","type":"Matrix.VectorSpace -> List.List (Matrix.RowVector Basics.Float) -> Result.Result String.String Basics.Bool"},{"name":"equal","comment":" Compare two matricies using comparator\n","type":"(a -> a -> Basics.Bool) -> Matrix.Matrix a -> Matrix.Matrix a -> Basics.Bool"},{"name":"foldl","comment":" Left fold over a Matrix\n","type":"(a -> b -> b) -> b -> Matrix.Matrix a -> b"},{"name":"gaussJordan","comment":" Function composition of Gaussian Elimination and Jordan Elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.Matrix Basics.Float"},{"name":"gaussianReduce","comment":" Gaussian Elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.Matrix Basics.Float"},{"name":"getAt","comment":" Get the value in a matrix at the specified row and column\n","type":"( Basics.Int, Basics.Int ) -> Matrix.Matrix a -> Maybe.Maybe a"},{"name":"identityMatrix","comment":" Create Identity Matrix with n dimension\n","type":"Basics.Int -> Matrix.Matrix Basics.Int"},{"name":"isHermitian","comment":" Predicate to determine if Matrix is Hermitian\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Basics.Bool"},{"name":"isSymmetric","comment":" Predicate to determine if Matrix is symmetric\n","type":"Matrix.Matrix a -> Basics.Bool"},{"name":"jordanReduce","comment":" Internal function for Jordan Elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.Matrix Basics.Float"},{"name":"liftA2","comment":" Lift a function to work on Matrix\n","type":"(a -> b -> c) -> Matrix.Matrix a -> Matrix.Matrix b -> Matrix.Matrix c"},{"name":"mDimension","comment":" Number of rows in Matrix\n","type":"Matrix.Matrix a -> Basics.Int"},{"name":"map","comment":" Map over a Matrix\n","type":"(a -> b) -> Matrix.Matrix a -> Matrix.Matrix b"},{"name":"matrixConcatHorizontal","comment":" Monoidally append Matricies together horizontally\n","type":"Monoid.Monoid (Matrix.Matrix a)"},{"name":"matrixConcatVertical","comment":" Monoidally append Matricies together vertically\n","type":"Monoid.Monoid (Matrix.Matrix a)"},{"name":"matrixEmpty","comment":" Monoid empty for Vector\n","type":"Matrix.Matrix a"},{"name":"multiplyComplexMatrices","comment":" Matrix Matrix multiplication for a Complex Numbered Matrix\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Result.Result String.String (Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number))"},{"name":"multiplyRealMatrices","comment":" Matrix Matrix multiplication for a Real Numbered Matrix\n","type":"Matrix.Matrix number -> Matrix.Matrix number -> Result.Result String.String (Matrix.Matrix number)"},{"name":"multiplyRealVectorRealMatrix","comment":" Multiply a real Vector by a real Matrix\n","type":"Matrix.Matrix number -> Vector.Vector number -> Vector.Vector number"},{"name":"nDimension","comment":" Number of columns in Matrix\n","type":"Matrix.Matrix a -> Basics.Int"},{"name":"nullSpace","comment":" Calculate the null space of a matrix\n","type":"Matrix.Matrix Basics.Float -> Matrix.Solution"},{"name":"print","comment":" Print a matrix to a string\n","type":"Matrix.Matrix Basics.Float -> String.String"},{"name":"pure","comment":" Applicative pure for Matrix\n","type":"a -> Matrix.Matrix a"},{"name":"read","comment":" Try to read a string into a Matrix\n","type":"String.String -> Result.Result (List.List Parser.DeadEnd) (Matrix.Matrix Basics.Float)"},{"name":"setAt","comment":" Set the value in a Matrix at the specified row and column\n","type":"( Basics.Int, Basics.Int ) -> a -> Matrix.Matrix a -> Matrix.Matrix a"},{"name":"solve","comment":" Solve a system of linear equations using Gauss-Jordan elimination with explict augmented side column vector\n","type":"Matrix.Matrix Basics.Float -> Matrix.ColumnVector Basics.Float -> Matrix.Solution"},{"name":"solveMatrix","comment":" Solve a system of linear equations using Gauss-Jordan elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.Solution"},{"name":"sumComplexMatrices","comment":" Monoidally add two Complex numbered Matrices together\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Monoid.Monoid (Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number))"},{"name":"sumRealMatrices","comment":" Monoidally add two Real numbered Matrices together\n","type":"Matrix.Matrix number -> Monoid.Monoid (Matrix.Matrix number)"},{"name":"transpose","comment":" Transpose a Matrix\n","type":"Matrix.Matrix a -> Matrix.Matrix a"},{"name":"upperTriangle","comment":" Put a matrix into Upper Triangular Form\n","type":"Matrix.Matrix Basics.Float -> Matrix.Matrix Basics.Float"}],"binops":[]},{"name":"Vector","comment":" A module for Vectors\n\n\n# Types\n\n@docs Vector\n@docs Vector3\n@docs Scalar\n\n@docs addComplexVectors\n@docs addRealVectors\n@docs map\n@docs multiplyRealVectors\n@docs multiplyComplexVectors\n@docs equal\n@docs apply\n@docs liftA2\n@docs foldl\n@docs realVectorDotProduct\n@docs complexVectorDotProduct\n@docs concat\n@docs complexVectorLength\n@docs cross\n@docs distance\n@docs normalise\n@docs realVectorLength\n@docs subtractRealVectors\n@docs vector3ToVector\n@docs dimension\n@docs realVectorSubspace\n@docs complexVectorSubspace\n@docs append\n@docs concatEmpty\n@docs pure\n@docs bind\n@docs findIndex\n@docs getAt\n@docs parseVector\n@docs print\n@docs read\n@docs setAt\n\n","unions":[{"name":"Scalar","comment":" Type to represent a scalar value\n","args":["a"],"cases":[["Scalar",["a"]]]},{"name":"Vector","comment":" Vector type\n","args":["a"],"cases":[["Vector",["List.List a"]]]},{"name":"Vector3","comment":" 3 Dimensional Vector type\n","args":["a"],"cases":[["Vector3",["a","a","a"]]]}],"aliases":[],"values":[{"name":"addComplexVectors","comment":" Add Complex Vectors together\n","type":"Vector.Vector (ComplexNumbers.ComplexNumberCartesian number) -> Vector.Vector (ComplexNumbers.ComplexNumberCartesian number) -> Vector.Vector (ComplexNumbers.ComplexNumberCartesian number)"},{"name":"addRealVectors","comment":" Add Real Vectors together\n","type":"Vector.Vector number -> Vector.Vector number -> Vector.Vector number"},{"name":"append","comment":" Append Vectors together\n","type":"Vector.Vector a -> Vector.Vector a -> Vector.Vector a"},{"name":"apply","comment":" Apply for Vector\n","type":"Vector.Vector (a -> b) -> Vector.Vector a -> Vector.Vector b"},{"name":"bind","comment":" bind for Vector\n","type":"Vector.Vector a -> (a -> Vector.Vector b) -> Vector.Vector b"},{"name":"complexVectorDotProduct","comment":" Dot product on two Complex Numbered Vectors\n","type":"Vector.Vector (ComplexNumbers.ComplexNumberCartesian number) -> Vector.Vector (ComplexNumbers.ComplexNumberCartesian number) -> ComplexNumbers.ComplexNumberCartesian number"},{"name":"complexVectorLength","comment":" Calculate length of a complex vector\n","type":"Vector.Vector (ComplexNumbers.ComplexNumberCartesian Basics.Float) -> ComplexNumbers.ComplexNumberCartesian Basics.Float"},{"name":"complexVectorSubspace","comment":" Function to determine if a set of complex valued vectors is a valid subspace\n","type":"Vector.Scalar (ComplexNumbers.ComplexNumberCartesian number) -> List.List (Vector.Vector (ComplexNumbers.ComplexNumberCartesian number)) -> List.List (ComplexNumbers.ComplexNumberCartesian number -> Basics.Bool) -> Basics.Bool"},{"name":"concat","comment":" Monoidally append Vectors together\n","type":"Monoid.Monoid (Vector.Vector a)"},{"name":"concatEmpty","comment":" Monoid empty for Vector\n","type":"Vector.Vector a"},{"name":"cross","comment":" Take the cross product of two 3D vectors\n","type":"Vector.Vector3 number -> Vector.Vector3 number -> Vector.Vector3 number"},{"name":"dimension","comment":" Count of number of elements in a vector\n","type":"Vector.Vector a -> Basics.Int"},{"name":"distance","comment":" Calculate distance between two vectors\n","type":"Vector.Vector Basics.Float -> Vector.Vector Basics.Float -> Basics.Float"},{"name":"equal","comment":" Compare two vectors for equality using a comparator\n","type":"(a -> a -> Basics.Bool) -> Vector.Vector a -> Vector.Vector a -> Basics.Bool"},{"name":"findIndex","comment":" Find index of a value in a Vector\n","type":"(a -> Basics.Bool) -> Vector.Vector a -> Maybe.Maybe Basics.Int"},{"name":"foldl","comment":" Left fold over a Vector\n","type":"(a -> b -> b) -> b -> Vector.Vector a -> b"},{"name":"getAt","comment":" Get the value in a Vector at the specified index\n","type":"Basics.Int -> Vector.Vector a -> Maybe.Maybe a"},{"name":"liftA2","comment":" Lift a binary function to work with Vectors\n","type":"(a -> b -> c) -> Vector.Vector a -> Vector.Vector b -> Vector.Vector c"},{"name":"map","comment":" Map over a vector\n","type":"(a -> b) -> Vector.Vector a -> Vector.Vector b"},{"name":"multiplyComplexVectors","comment":" Multiply two Complex Vectors together\n","type":"Vector.Vector (ComplexNumbers.ComplexNumberCartesian number) -> Vector.Vector (ComplexNumbers.ComplexNumberCartesian number) -> Vector.Vector (ComplexNumbers.ComplexNumberCartesian number)"},{"name":"multiplyRealVectors","comment":" Multiply two Real Vectors together\n","type":"Vector.Vector number -> Vector.Vector number -> Vector.Vector number"},{"name":"normalise","comment":" Adjust a vector so that its length is exactly one\n","type":"Vector.Vector Basics.Float -> Vector.Vector Basics.Float"},{"name":"parseVector","comment":" Parse a Vector\n","type":"Parser.Parser (Vector.Vector Basics.Float)"},{"name":"print","comment":" Print a Vector as a string\n","type":"Vector.Vector Basics.Float -> String.String"},{"name":"pure","comment":" Place a value in minimal Vector context\n","type":"a -> Vector.Vector a"},{"name":"read","comment":" Try to read a string into a Vector\n","type":"String.String -> Result.Result (List.List Parser.DeadEnd) (Vector.Vector Basics.Float)"},{"name":"realVectorDotProduct","comment":" Dot product on two Real Numbered Vectors\n","type":"Vector.Vector number -> Vector.Vector number -> number"},{"name":"realVectorLength","comment":" Calculate length of a real vector\n","type":"Vector.Vector Basics.Float -> Basics.Float"},{"name":"realVectorSubspace","comment":" Function to determine if a set of real valued vectors is a valid subspace\n","type":"Vector.Scalar number -> List.List (Vector.Vector number) -> List.List (number -> Basics.Bool) -> Basics.Bool"},{"name":"setAt","comment":" Set the value in a Vector at the specified index\n","type":"Basics.Int -> a -> Vector.Vector a -> Vector.Vector a"},{"name":"subtractRealVectors","comment":" Subtract Real Vectors together\n","type":"Vector.Vector number -> Vector.Vector number -> Vector.Vector number"},{"name":"vector3ToVector","comment":" Convert a Vector3 type to a Vector typeZ\n","type":"Vector.Vector3 number -> Vector.Vector number"}],"binops":[]}]