[{"name":"Algebra.Matrix","comment":" This module provides a Matrix type.\n\n\n## Type\n\n@docs Matrix, Operation\n\n\n## Creation\n\n@docs fromList, identity\n\n\n## Operation\n\n@docs transpose\n\n\n## System of equation\n\n@docs kernel, rowEchelon\n\n","unions":[{"name":"Matrix","comment":" The Matrix type.\n\nThis type is parameterized over its elements.\n\n","args":["a"],"cases":[]},{"name":"Operation","comment":" Type of elementary operations that can be performed on a Matrix.\n","args":["a"],"cases":[["Swap",["Basics.Int","Basics.Int"]],["Multiply",["a","Basics.Int"]],["Linear",["a","Basics.Int","Basics.Int"]]]}],"aliases":[],"values":[{"name":"fromList","comment":" Create a Matrix from a list of vectors.\n","type":"List.List (Algebra.Vector.Vector a) -> Algebra.Matrix.Matrix a"},{"name":"identity","comment":" The identity matrix of a certain dimension.\n","type":"Field.Field a -> Basics.Int -> Algebra.Matrix.Matrix a"},{"name":"kernel","comment":" Determine the kernel of a matrix.\n","type":"Field.Field a -> Algebra.Matrix.Matrix a -> Algebra.VectorSpace.VectorSpace a"},{"name":"rowEchelon","comment":" Return the row echelon form of a matrix.\n","type":"Field.Field a -> Algebra.Matrix.Matrix a -> ( Algebra.Matrix.Matrix a, List.List (Algebra.Matrix.Operation a), List.List Basics.Int )"},{"name":"transpose","comment":" Returns the transpose of a Matrix.\n","type":"Field.Field a -> Algebra.Matrix.Matrix a -> Algebra.Matrix.Matrix a"}],"binops":[]},{"name":"Algebra.Vector","comment":" This module provides a Vector type.\n\n\n## Type\n\n@docs Vector\n\n\n## Construction\n\n@docs fromList, zero\n\n\n## Inspection\n\n@docs dimension, index\n\n\n## Operation\n\n@docs add, dot, scale, subtract\n\n\n## Deconstruction\n\n@docs toList\n\n","unions":[{"name":"Vector","comment":" The Vector type\n\nThis type is parameterized over its elements.\n\n","args":["a"],"cases":[]}],"aliases":[],"values":[{"name":"add","comment":" Add two vectors component-wise.\n","type":"Field.Field a -> Algebra.Vector.Vector a -> Algebra.Vector.Vector a -> Algebra.Vector.Vector a"},{"name":"dimension","comment":" Returns the number of coordinates in the given Vector.\n","type":"Algebra.Vector.Vector a -> Basics.Int"},{"name":"dot","comment":" The inner-product of two vectors.\n\nThe dimension of the result is equal to the smallest dimension of the\narguments.\n\n","type":"Field.Field a -> Algebra.Vector.Vector a -> Algebra.Vector.Vector a -> a"},{"name":"fromList","comment":" Create a Vector from a list of elements\n","type":"List.List a -> Algebra.Vector.Vector a"},{"name":"index","comment":" Return the i-th component of a Vector, if it exists.\n\nNohting otherwise.\n\n","type":"Basics.Int -> Algebra.Vector.Vector a -> Maybe.Maybe a"},{"name":"scale","comment":" Scalar multilication\n","type":"Field.Field a -> a -> Algebra.Vector.Vector a -> Algebra.Vector.Vector a"},{"name":"subtract","comment":" Subtract two vectors.\n\nThis is a convenience method. It could be implemented with field negation\nand the add function.\n\n","type":"Field.Field a -> Algebra.Vector.Vector a -> Algebra.Vector.Vector a -> Algebra.Vector.Vector a"},{"name":"toList","comment":" Return the coordinates of the vector.\n","type":"Algebra.Vector.Vector a -> List.List a"},{"name":"zero","comment":" Create the zero Vector in a certain dimension.\n\nIt uses the zero element of the field.\n\n","type":"Field.Field a -> Basics.Int -> Algebra.Vector.Vector a"}],"binops":[]},{"name":"Algebra.VectorSpace","comment":" Provide a VectorSpace.\n\nA VectorSpace is\n\n> a set whose elements, often called vectors, can be added together and multiplied (\"scaled\") by numbers called scalars\n\n\n## Type\n\n@docs VectorSpace\n\n\n## Creation\n\n@docs span, empty\n\n\n## Equality\n\n@docs equals\n\n\n## Operation\n\n@docs add, contains, intersection, all\n\n","unions":[{"name":"VectorSpace","comment":" The VectorSpace type.\n\nIt is parameterized over the elements its vectors contains.\n\n","args":["a"],"cases":[]}],"aliases":[],"values":[{"name":"add","comment":" Add a Vector to the basis of the VectorSpace.\n","type":"Field.Field a -> Algebra.Vector.Vector a -> Algebra.VectorSpace.VectorSpace a -> Algebra.VectorSpace.VectorSpace a"},{"name":"all","comment":" Iterate over all Vectors in this VectorSpace.\n\nApply a transformation on each Vector and return the result as a list.\n\n","type":"(Algebra.Vector.Vector Field.Finite.Finite -> b) -> Field.Field Field.Finite.Finite -> Algebra.VectorSpace.VectorSpace Field.Finite.Finite -> List.List b"},{"name":"contains","comment":" Determinis if a Vector is contiained in the VectorSpace\n","type":"Field.Field a -> Algebra.Vector.Vector a -> Algebra.VectorSpace.VectorSpace a -> Basics.Bool"},{"name":"empty","comment":" The empty VectorSpace.\n","type":"Algebra.VectorSpace.VectorSpace a"},{"name":"equals","comment":" Determines if two VectorSpaces are the same linear spaces.\n","type":"Field.Field a -> Algebra.VectorSpace.VectorSpace a -> Algebra.VectorSpace.VectorSpace a -> Basics.Bool"},{"name":"intersection","comment":" The intersection of two VectorSpaces.\n\nThis is formed by the linear space of all the vectors that are contained in both\nVectorSpaces.\n\n","type":"Field.Field a -> Algebra.VectorSpace.VectorSpace a -> Algebra.VectorSpace.VectorSpace a -> Algebra.VectorSpace.VectorSpace a"},{"name":"span","comment":" Create the VectorSpace that is spanned by the list of vectors.\n","type":"Field.Field a -> List.List (Algebra.Vector.Vector a) -> Algebra.VectorSpace.VectorSpace a"}],"binops":[]},{"name":"Field","comment":" A [field](https://en.wikipedia.org/wiki/Field_(mathematics)) is\n\n> a set on which addition, subtraction, multiplication, and division are defined\n\n@docs Field\n\n","unions":[],"aliases":[{"name":"Field","comment":" A record with all field operations.\n\nIt is parameterized of the type of elements the field has operations on.\n\n","args":["a"],"type":"{ zero : a, one : a, fromInt : Basics.Int -> a, addition : a -> a -> a, negation : a -> a, multiplication : a -> a -> a, invertion : a -> Maybe.Maybe a }"}],"values":[],"binops":[]},{"name":"Field.Finite","comment":" The field of Finite numbers.\n\n@docs Finite, field\n\n\n## Inspection\n\n@docs order, toInt\n\n","unions":[{"name":"Finite","comment":" Container for a finite number.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"field","comment":" Returns a finite field.\n\nCurrently only a prime number of elements is supported. The client must ensure\nthe number of elements is prime.\n\n","type":"Basics.Int -> Field.Field Field.Finite.Finite"},{"name":"order","comment":" Determine the number of elements in the finite field.\n","type":"Field.Field Field.Finite.Finite -> Basics.Int"},{"name":"toInt","comment":" Dtermine in which class the element belangs to.\n","type":"Field.Finite.Finite -> Basics.Int"}],"binops":[]},{"name":"Field.Rational","comment":" The field of Rational numbers.\n\n@docs Rational, field\n\n","unions":[{"name":"Rational","comment":" Container element for a rational element\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"field","comment":" Returns the field of rational numbers.\n","type":"Field.Field Field.Rational.Rational"}],"binops":[]}]