| Stability | experimental |
|---|---|
| Safe Haskell | None |
| Language | Haskell2010 |
Lib.Core
Description
The core language operations.
QBit manipulation
new :: Bit -> QM QBit Source #
Create new QBit from a bit.
maps \(0 \mapsto |0>\) and \(1 \mapsto |1>\)
measure :: QBit -> QM Bit Source #
Performs a measurement operation, collapsing a QBit to a Bit.
The qubit will still exist in the quantum state, but be collapsed.
Finds qubit probability to collapse to a zero and one. Uses random number generator to "measure it" to a zero or one. Updates quantum state to remove impossible states, and normalizes it so probabilites sum to one.
Control functions
controlbit :: QM a -> Bit -> QM () Source #
Sets a classical bit as the controlbit for a quantum gate. Making it run only when the classical bit is equal to one.
Distribution functions
ndist :: Int -> QM Bit -> IO () Source #
Run a quantum program producing a single bit reps times
and print the results
Bit
Instances
| Bounded Bit | |
| Enum Bit | |
| Eq Bit | |
| Fractional Bit | |
| Integral Bit | |
| Num Bit | |
| Ord Bit | |
| Read Bit | |
| Real Bit | |
Defined in Data.Bit.Internal Methods toRational :: Bit -> Rational # | |
| Show Bit | |
| Generic Bit | |
| Bits Bit | |
Defined in Data.Bit.Internal | |
| FiniteBits Bit | |
Defined in Data.Bit.Internal Methods finiteBitSize :: Bit -> Int # countLeadingZeros :: Bit -> Int # countTrailingZeros :: Bit -> Int # | |
| NFData Bit | |
Defined in Data.Bit.Internal | |
| Unbox Bit | |
Defined in Data.Bit.Internal | |
| MVector MVector Bit | |
Defined in Data.Bit.Internal Methods basicLength :: MVector s Bit -> Int basicUnsafeSlice :: Int -> Int -> MVector s Bit -> MVector s Bit basicOverlaps :: MVector s Bit -> MVector s Bit -> Bool basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) Bit) basicInitialize :: PrimMonad m => MVector (PrimState m) Bit -> m () basicUnsafeReplicate :: PrimMonad m => Int -> Bit -> m (MVector (PrimState m) Bit) basicUnsafeRead :: PrimMonad m => MVector (PrimState m) Bit -> Int -> m Bit basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) Bit -> Int -> Bit -> m () basicClear :: PrimMonad m => MVector (PrimState m) Bit -> m () basicSet :: PrimMonad m => MVector (PrimState m) Bit -> Bit -> m () basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) Bit -> MVector (PrimState m) Bit -> m () basicUnsafeMove :: PrimMonad m => MVector (PrimState m) Bit -> MVector (PrimState m) Bit -> m () basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) Bit -> Int -> m (MVector (PrimState m) Bit) | |
| Vector Vector Bit | |
Defined in Data.Bit.Internal Methods basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) Bit -> m (Vector Bit) basicUnsafeThaw :: PrimMonad m => Vector Bit -> m (Mutable Vector (PrimState m) Bit) basicLength :: Vector Bit -> Int basicUnsafeSlice :: Int -> Int -> Vector Bit -> Vector Bit basicUnsafeIndexM :: Monad m => Vector Bit -> Int -> m Bit basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) Bit -> Vector Bit -> m () | |
| type Rep Bit | |
Defined in Data.Bit.Internal | |
| data Vector Bit | |
Defined in Data.Bit.Internal | |
| data MVector s Bit | |
Defined in Data.Bit.Internal | |