[{"name":"Quantum","comment":" Quantum Computing Simulator in Elm\n\n\n# Types\n\n@docs Ket\n@docs Bra\n\n\n# Values\n\n@docs ket0\n@docs ket1\n@docs ketPlus\n@docs ketMinus\n@docs ketComplex0\n@docs ketComplex1\n@docs ketComplexPlus\n@docs ketComplexMinus\n@docs ketEmpty\n\n\n# Unitary Operations\n\n@docs scalarMultiplication\n@docs dimension\n@docs sum\n@docs foldl\n@docs variance\n@docs map\n\n\n# Binary Operations\n\n@docs add\n@docs multiplyInvertableMatrixKet\n\n\n# Quantum Operators\n\n@docs h\n@docs hComplex\n@docs x\n@docs squareRootNot\n@docs sigmaXReal\n@docs sigmaX\n@docs sigmaY\n@docs sigmaZ\n@docs z\n@docs toffoli\n@docs fredkin\n@docs t\n@docs s\n@docs cNOT\n@docs and\n@docs probabilityOfState\n@docs multiplyHermitianMatrixKet\n@docs expectedValue\n@docs varianceHermitianOperator\n\n\n# Equality\n\n@docs equal\n\n\n# Manipulation\n\n@docs getAt\n@docs setAt\n\n","unions":[{"name":"Bra","comment":" Bra Type\n","args":["a"],"cases":[["Bra",["Matrix.Matrix a"]]]},{"name":"Ket","comment":" Ket Type\n","args":["a"],"cases":[["Ket",["ColumnVector.ColumnVector a"]]]}],"aliases":[],"values":[{"name":"add","comment":" Add two Kets\n","type":"Field.Field a -> Quantum.Ket a -> Quantum.Ket a -> Quantum.Ket a"},{"name":"and","comment":" and Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"cNOT","comment":" controlled-NOT Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"dimension","comment":" Count of number of elements in a Ket\n","type":"Quantum.Ket a -> Basics.Int"},{"name":"equal","comment":" Compare two vectors for equality using a comparator\n","type":"(a -> a -> Basics.Bool) -> Quantum.Ket a -> Quantum.Ket a -> Basics.Bool"},{"name":"expectedValue","comment":" Calculate the expected value when a Ket is multiplied by a Hermitian Matrix\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float) -> HermitianMatrix.HermitianMatrix Basics.Float -> Result.Result String.String (Real.Real Basics.Float)"},{"name":"foldl","comment":" Left fold over a Ket\n","type":"(a -> b -> b) -> b -> Quantum.Ket a -> b"},{"name":"fredkin","comment":" Fredkin Operation\n","type":"InvertableMatrix.InvertableMatrix Basics.Float"},{"name":"getAt","comment":" Get the value in a Ket at the specified index\n","type":"Basics.Int -> Quantum.Ket a -> Maybe.Maybe a"},{"name":"h","comment":" Hadamard Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"hComplex","comment":" Hadamard Operation\n","type":"UnitaryMatrix.UnitaryMatrix Basics.Float"},{"name":"ket0","comment":" Ket representing zero state\n","type":"Quantum.Ket (Real.Real Basics.Float)"},{"name":"ket1","comment":" Ket representing one state\n","type":"Quantum.Ket (Real.Real Basics.Float)"},{"name":"ketComplex0","comment":" Ket representing zero state with complex numbers\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float)"},{"name":"ketComplex1","comment":" Ket representing one state with complex numbers\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float)"},{"name":"ketComplexMinus","comment":" Ket representing + state with complex numbers\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float)"},{"name":"ketComplexPlus","comment":" Ket representing + state with complex numbers\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float)"},{"name":"ketEmpty","comment":" Empty ket\n","type":"Quantum.Ket a"},{"name":"ketMinus","comment":" Ket representing + state\n","type":"Quantum.Ket (Real.Real Basics.Float)"},{"name":"ketPlus","comment":" Ket representing + state\n","type":"Quantum.Ket (Real.Real Basics.Float)"},{"name":"map","comment":" Map over a vector\n","type":"(a -> b) -> Quantum.Ket a -> Quantum.Ket b"},{"name":"multiplyHermitianMatrixKet","comment":" Multiply a Vector by a Matrix\n","type":"HermitianMatrix.HermitianMatrix Basics.Float -> Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float) -> Result.Result String.String (Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float))"},{"name":"multiplyInvertableMatrixKet","comment":" Multiply a Vector by a Matrix\n","type":"Vector.InnerProductSpace a -> InvertableMatrix.InvertableMatrix a -> Quantum.Ket a -> Result.Result String.String (Quantum.Ket a)"},{"name":"probabilityOfState","comment":" Calculate the probability of end state, the Bra, with given start state, the Ket\n","type":"Vector.InnerProductSpace a -> Quantum.Ket a -> Quantum.Bra a -> Result.Result String.String a"},{"name":"s","comment":" s Operation\n","type":"UnitaryMatrix.UnitaryMatrix Basics.Float"},{"name":"scalarMultiplication","comment":" Multiply a Ket by a Scalar\n","type":"Field.Field a -> a -> Quantum.Ket a -> Quantum.Ket a"},{"name":"setAt","comment":" Set the value in a Ket at the specified index\n","type":"Basics.Int -> a -> Quantum.Ket a -> Quantum.Ket a"},{"name":"sigmaX","comment":" SigmaX Operation\n","type":"UnitaryMatrix.UnitaryMatrix Basics.Float"},{"name":"sigmaXReal","comment":" SigmaX Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"sigmaY","comment":" SigmaX Operation\n","type":"UnitaryMatrix.UnitaryMatrix Basics.Float"},{"name":"sigmaZ","comment":" SigmaX Operation\n","type":"UnitaryMatrix.UnitaryMatrix Basics.Float"},{"name":"squareRootNot","comment":" square root of NOT Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"sum","comment":" Calculate the sum of a Ket\n","type":"Monoid.Monoid a -> Quantum.Ket a -> a"},{"name":"t","comment":" t Operation\n","type":"UnitaryMatrix.UnitaryMatrix Basics.Float"},{"name":"toffoli","comment":" Toffoli Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"variance","comment":" variance\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float) -> HermitianMatrix.HermitianMatrix Basics.Float -> Result.Result String.String (Real.Real Basics.Float)"},{"name":"varianceHermitianOperator","comment":" varianceHermitianOperator\n","type":"Quantum.Ket (ComplexNumbers.ComplexNumber Basics.Float) -> HermitianMatrix.HermitianMatrix Basics.Float -> Result.Result String.String (HermitianMatrix.HermitianMatrix Basics.Float)"},{"name":"x","comment":" NOT Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"},{"name":"z","comment":" z Operation\n","type":"InvertableMatrix.InvertableMatrix (Real.Real Basics.Float)"}],"binops":[]}]