QIO-1.0: The Quantum IO Monad is a library for defining quantum computations in Haskell
QIO.Qio
type Pure = VecEqL CC HeapMapSource
updateP :: Pure -> Qbit -> Bool -> PureSource
newtype Unitary Source
Constructors
Fields
Instances
uRot :: Qbit -> Rotation -> UnitarySource
unitaryRot :: Rotation -> BoolSource
uMatrix :: Qbit -> (CC, CC, CC, CC) -> UnitarySource
uSwap :: Qbit -> Qbit -> UnitarySource
uCond :: Qbit -> (Bool -> Unitary) -> UnitarySource
uLet :: Bool -> (Qbit -> Unitary) -> UnitarySource
runU :: U -> UnitarySource
data StateQ Source
initialStateQ :: StateQSource
pa :: Pure -> RRSource
data Split Source
split :: Pure -> Qbit -> SplitSource
class Monad m => PMonad m whereSource
Methods
merge :: RR -> m a -> m a -> m aSource
data Prob a Source
evalWith :: PMonad m => QIO a -> State StateQ (m a)Source
eval :: PMonad m => QIO a -> m aSource
run :: QIO a -> IO aSource
sim :: QIO a -> Prob aSource