[{"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\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 findPivot\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 scale\n@docs solve\n@docs subrow\n@docs swap\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"]],["NoUniqueSolution",["String.String"]]]}],"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":"areLinearlyIndependent","comment":" Predicate to determine if a list of Vectors are linearly independent\n","type":"List.List (Matrix.RowVector Basics.Float) -> Basics.Bool"},{"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":"equal","comment":" Compare two Matrices for equality\n","type":"(a -> a -> Basics.Bool) -> Matrix.Matrix a -> Matrix.Matrix a -> Basics.Bool"},{"name":"findPivot","comment":" Internal function for finding pivot entry in Gaussian elimination\n","type":"Matrix.Matrix number -> Basics.Int -> Maybe.Maybe Basics.Int"},{"name":"gaussJordan","comment":" Internal function composition of Gaussian Elimination and Jordan Elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.ColumnVector Basics.Float -> Matrix.Matrix Basics.Float"},{"name":"gaussianReduce","comment":" Internal function Gaussian Elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.ColumnVector Basics.Float -> Matrix.Matrix Basics.Float"},{"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":"map","comment":" Map over a Matrix\n","type":"(a -> b) -> Matrix.Matrix a -> Matrix.Matrix b"},{"name":"multiplyComplexMatrices","comment":" Matrix Matrix multiplication for a Complex Numbered Matrix\n","type":"Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number) -> Matrix.Matrix (ComplexNumbers.ComplexNumberCartesian number)"},{"name":"multiplyRealMatrices","comment":" Matrix Matrix multiplication for a Real Numbered Matrix\n","type":"Matrix.Matrix number -> Matrix.Matrix number -> Matrix.Matrix number"},{"name":"multiplyRealVectorRealMatrix","comment":" Multiply a real Vector by a real Matrix\n","type":"Matrix.Matrix number -> Vector.Vector number -> Matrix.Matrix number"},{"name":"nullSpace","comment":" Calculate the null space of a matrix\n","type":"Matrix.Matrix Basics.Float -> Matrix.Solution"},{"name":"scale","comment":" Internal function for scalling rows by pivot entry\n","type":"Basics.Int -> Matrix.RowVector Basics.Float -> Matrix.RowVector Basics.Float"},{"name":"solve","comment":" Solve a system of linear equations using Gauss-Jordan elimination\n","type":"Matrix.Matrix Basics.Float -> Matrix.ColumnVector Basics.Float -> Matrix.Solution"},{"name":"subrow","comment":" Internal function for subtracting rows from each other\n","type":"Basics.Int -> Matrix.RowVector Basics.Float -> Matrix.RowVector Basics.Float -> Matrix.RowVector Basics.Float"},{"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":"swap","comment":" Swap two rows of a matrix\n","type":"Matrix.Matrix a -> Basics.Int -> Basics.Int -> Matrix.Matrix a"},{"name":"transpose","comment":" Transpose a Matrix\n","type":"Matrix.Matrix a -> Matrix.Matrix a"}],"binops":[]},{"name":"Vector","comment":" A module for Vectors\n\n\n# Types\n\n@docs Vector\n@docs Vector3\n\n@docs addComplexVectors\n@docs addRealVectors\n@docs map\n@docs multiplyRealVectors\n@docs multiplyComplexVectors\n@docs equal\n@docs sumEmpty\n@docs sumReal\n@docs sumComplex\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\n","unions":[{"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":"apply","comment":" Apply for Vector\n","type":"Vector.Vector (a -> b) -> Vector.Vector a -> 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":"concat","comment":" Concat two Vectors together\n","type":"Vector.Vector a -> Vector.Vector a -> 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":"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\n","type":"(a -> a -> Basics.Bool) -> Vector.Vector a -> Vector.Vector a -> Basics.Bool"},{"name":"foldl","comment":" Left fold over a Vector\n","type":"(a -> b -> b) -> b -> Vector.Vector a -> b"},{"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":"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":"subtractRealVectors","comment":" Subtract Real Vectors together\n","type":"Vector.Vector number -> Vector.Vector number -> Vector.Vector number"},{"name":"sumComplex","comment":" Monoidally add Complex Vectors together\n","type":"List.List (ComplexNumbers.ComplexNumberCartesian number) -> Monoid.Monoid (Vector.Vector (ComplexNumbers.ComplexNumberCartesian number))"},{"name":"sumEmpty","comment":" Monoid empty for Vector\n","type":"List.List a -> Vector.Vector a"},{"name":"sumReal","comment":" Monoidally add Real Vectors together\n","type":"List.List number -> Monoid.Monoid (Vector.Vector number)"},{"name":"vector3ToVector","comment":" Convert a Vector3 type to a Vector typeZ\n","type":"Vector.Vector3 number -> Vector.Vector number"}],"binops":[]}]