traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Primitives.Class.UnitaryCost

Synopsis

Documentation

class (size ~ SizeType prim, prec ~ PrecType prim, TypeCheckPrim prim size) => UnitaryCostPrim prim size prec | prim -> size prec where #

Unitary query and operation costs of a primitive. Represents one level of the call graph.

Minimal complete definition

Nothing

Methods

unitaryQueryCosts :: prim -> FailProb prec -> PrimFnShape prim (UnitaryQueries prec) #

Bound on number of queries made to each function.

default unitaryQueryCosts :: (Generic prim, GUnitaryCostPrim (Rep prim) size prec) => prim -> FailProb prec -> PrimFnShape prim (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => prim -> FailProb prec -> cost #

Cost of all additional operations.

default unitaryExprCosts :: (Generic prim, GUnitaryCostPrim (Rep prim) size prec, CostModel cost, prec ~ PrecType cost) => prim -> FailProb prec -> cost #

Instances

Instances details
(TypingReqs size, Integral size, Floating prec) => UnitaryCostPrim (DefaultPrimCollection size prec) size prec # 
Instance details

Defined in Traq.Primitives

Methods

unitaryQueryCosts :: DefaultPrimCollection size prec -> FailProb prec -> PrimFnShape (DefaultPrimCollection size prec) (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => DefaultPrimCollection size prec -> FailProb prec -> cost #

(TypingReqs size, Floating prec) => UnitaryCostPrim (CAmplify size prec) size prec # 
Instance details

Defined in Traq.Primitives.Amplify.CAmplify

Methods

unitaryQueryCosts :: CAmplify size prec -> FailProb prec -> PrimFnShape (CAmplify size prec) (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => CAmplify size prec -> FailProb prec -> cost #

(TypingReqs size, Floating prec) => UnitaryCostPrim (QAmplify size prec) size prec # 
Instance details

Defined in Traq.Primitives.Amplify.QAmplify

Methods

unitaryQueryCosts :: QAmplify size prec -> FailProb prec -> PrimFnShape (QAmplify size prec) (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => QAmplify size prec -> FailProb prec -> cost #

(Integral sizeT, Floating precT, SizeToPrec sizeT precT) => UnitaryCostPrim (QMax sizeT precT) sizeT precT #

Compute the unitary cost using the QSearch_Zalka cost formula.

Instance details

Defined in Traq.Primitives.Max.QMax

Methods

unitaryQueryCosts :: QMax sizeT precT -> FailProb precT -> PrimFnShape (QMax sizeT precT) (UnitaryQueries precT) #

unitaryExprCosts :: (CostModel cost, precT ~ PrecType cost) => QMax sizeT precT -> FailProb precT -> cost #

(TypingReqs size, Integral size, Num prec) => UnitaryCostPrim (DetSearch size prec) size prec # 
Instance details

Defined in Traq.Primitives.Search.DetSearch

Methods

unitaryQueryCosts :: DetSearch size prec -> FailProb prec -> PrimFnShape (DetSearch size prec) (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => DetSearch size prec -> FailProb prec -> cost #

(TypingReqs sizeT, Integral sizeT, Floating precT) => UnitaryCostPrim (QSearchCFNW sizeT precT) sizeT precT #

Compute the unitary cost using the QSearch_Zalka cost formula.

Instance details

Defined in Traq.Primitives.Search.QSearchCFNW

Methods

unitaryQueryCosts :: QSearchCFNW sizeT precT -> FailProb precT -> PrimFnShape (QSearchCFNW sizeT precT) (UnitaryQueries precT) #

unitaryExprCosts :: (CostModel cost, precT ~ PrecType cost) => QSearchCFNW sizeT precT -> FailProb precT -> cost #

(TypingReqs size, Integral size, Floating prec) => UnitaryCostPrim (RandomSearch size prec) size prec # 
Instance details

Defined in Traq.Primitives.Search.RandomSearch

Methods

unitaryQueryCosts :: RandomSearch size prec -> FailProb prec -> PrimFnShape (RandomSearch size prec) (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => RandomSearch size prec -> FailProb prec -> cost #

(TypingReqs size, Floating prec, Ord prec, Show prec, SizeToPrec size prec) => UnitaryCostPrim (SimonsFindXorPeriod size prec) size prec # 
Instance details

Defined in Traq.Primitives.Simons.Quantum

Methods

unitaryQueryCosts :: SimonsFindXorPeriod size prec -> FailProb prec -> PrimFnShape (SimonsFindXorPeriod size prec) (UnitaryQueries prec) #

unitaryExprCosts :: (CostModel cost, prec ~ PrecType cost) => SimonsFindXorPeriod size prec -> FailProb prec -> cost #

(Eq sizeT, Num sizeT, Show sizeT, Show precT, Num precT, Eq precT) => UnitaryCostPrim (QSearchSym sizeT precT) (Sym sizeT) (Sym precT) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

unitaryQueryCosts :: QSearchSym sizeT precT -> FailProb (Sym precT) -> PrimFnShape (QSearchSym sizeT precT) (UnitaryQueries (Sym precT)) #

unitaryExprCosts :: (CostModel cost, Sym precT ~ PrecType cost) => QSearchSym sizeT precT -> FailProb (Sym precT) -> cost #

data UnitaryQueries prec #

Constructors

UnitaryQueries 

Fields

Instances

Instances details
Read prec => Read (UnitaryQueries prec) # 
Instance details

Defined in Traq.Primitives.Class.UnitaryCost

Show prec => Show (UnitaryQueries prec) # 
Instance details

Defined in Traq.Primitives.Class.UnitaryCost

Eq prec => Eq (UnitaryQueries prec) # 
Instance details

Defined in Traq.Primitives.Class.UnitaryCost

Methods

(==) :: UnitaryQueries prec -> UnitaryQueries prec -> Bool #

(/=) :: UnitaryQueries prec -> UnitaryQueries prec -> Bool #

strongQueries :: Num prec => prec -> UnitaryQueries prec #

weakQueries :: Num prec => prec -> UnitaryQueries prec #

zeroQ :: Num prec => UnitaryQueries prec #

totalWeakUnitaryQueries :: Num prec => UnitaryQueries prec -> prec #

Total number of queries to a "weak" (i.e. with entangled aux) implementation of the sub-function.