| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Traq.Primitives.Simons.Prelude
Contents
Synopsis
- data FindXorPeriod sizeT precT = FindXorPeriod {}
- newtype FindXorPeriodArg a = FindXorPeriodArg {
- fun :: a
Primitive
data FindXorPeriod sizeT precT #
Primitive to solve Simon's problem.
Simon's Problem: Given a function f : {0, 1}^n -> {0, 1}^n, find an s : {0, 1}^n such that f(x) = f(x ^ s) for every x.
Promise of default variant: Either
(1) f is two-to-one and there is exactly one such s, or
(2) f is one-one.
Promise of Robust variant (used in the primitive below):
f is allowed to have at most p_0 fraction of spurious collisions (i.e. f(x) = f(x') and x ^ x' /= s).
References: "On the Power of Quantum Computation" https://epubs.siam.org/doi/10.1137/S0097539796298637
Constructors
| FindXorPeriod | |
Instances
newtype FindXorPeriodArg a #
Constructors
| FindXorPeriodArg | |
Fields
| |
Instances
| ValidPrimShape FindXorPeriodArg # | |
Defined in Traq.Primitives.Simons.Prelude Methods listToShape :: [a] -> Either String (FindXorPeriodArg a) # shapeToList :: FindXorPeriodArg a -> [a] # | |
| Show a => Show (FindXorPeriodArg a) # | |
Defined in Traq.Primitives.Simons.Prelude Methods showsPrec :: Int -> FindXorPeriodArg a -> ShowS # show :: FindXorPeriodArg a -> String # showList :: [FindXorPeriodArg a] -> ShowS # | |
| Eq a => Eq (FindXorPeriodArg a) # | |
Defined in Traq.Primitives.Simons.Prelude Methods (==) :: FindXorPeriodArg a -> FindXorPeriodArg a -> Bool # (/=) :: FindXorPeriodArg a -> FindXorPeriodArg a -> Bool # | |