| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Traq.Analysis.Cost.Quantum
Contents
Synopsis
- class CostU ext size prec => CostQ ext size prec | ext -> size prec where
- costQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', CostQ ext' size prec, CostModelReqs size prec cost) => ext -> m cost
- costQProg :: forall cost ext size prec. (CostQ ext size prec, CostModelReqs size prec cost) => Program ext -> cost
- class (CostQ ext size prec, Evaluatable ext size prec) => ExpCostQ ext size prec | ext -> size prec where
- expCostQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', ExpCostQ ext' size prec, CostModelReqs size prec cost) => ext -> ProgramState size -> m cost
- expCostQProg :: forall cost ext size prec. (ExpCostQ ext size prec, CostModelReqs size prec cost, EvalReqs size prec) => Program ext -> [Value size] -> FunInterpCtx size -> cost
- costQ1 :: forall ext size prec cost m. (CostQ1 f, m ~ CostAnalysisMonad ext, CostQ ext size prec, CostModelReqs size prec cost) => f ext -> m cost
- expCostQ1 :: forall ext size prec cost m. (ExpCostQ1 f, m ~ CostAnalysisMonad ext, size ~ SizeType ext, prec ~ PrecType ext, ExpCostQ ext size prec, CostModelReqs size prec cost) => f ext -> EvalArgs f ext -> m cost
- type CostModelReqs size prec cost = (CostModel cost, prec ~ PrecType cost, SizeToPrec size prec, Ord cost)
Documentation
class CostU ext size prec => CostQ ext size prec | ext -> size prec where #
Havoc Cost w.r.t. quantum compiler
Methods
costQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', CostQ ext' size prec, CostModelReqs size prec cost) => ext -> m cost #
Instances
| (UnitaryCostPrim prim size prec, QuantumHavocCostPrim prim size prec, CostReqs size prec) => CostQ (AnnFailProb (Primitive prim)) size prec # | |
Defined in Traq.Primitives.Class Methods costQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', CostQ ext' size prec, CostModelReqs size prec cost) => AnnFailProb (Primitive prim) -> m cost # | |
| CostReqs size prec => CostQ (Core size prec) size prec # | |
Defined in Traq.Analysis.Cost.Quantum Methods costQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', CostQ ext' size prec, CostModelReqs size prec cost) => Core size prec -> m cost # | |
costQProg :: forall cost ext size prec. (CostQ ext size prec, CostModelReqs size prec cost) => Program ext -> cost #
Havoc (worst-case) quantum cost of the entire program (i.e. last function as entry-point)
class (CostQ ext size prec, Evaluatable ext size prec) => ExpCostQ ext size prec | ext -> size prec where #
Expected Cost w.r.t. quantum compiler
Methods
expCostQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', ExpCostQ ext' size prec, CostModelReqs size prec cost) => ext -> ProgramState size -> m cost #
Instances
| (UnitaryCostPrim prim size prec, QuantumHavocCostPrim prim size prec, QuantumExpCostPrim prim size prec, EvalPrim prim size prec, CostReqs size prec, EvalReqs size prec) => ExpCostQ (AnnFailProb (Primitive prim)) size prec # | |
Defined in Traq.Primitives.Class Methods expCostQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', ExpCostQ ext' size prec, CostModelReqs size prec cost) => AnnFailProb (Primitive prim) -> ProgramState size -> m cost # | |
| (CostReqs size prec, EvalReqs size prec) => ExpCostQ (Core size prec) size prec # | |
Defined in Traq.Analysis.Cost.Quantum Methods expCostQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', ExpCostQ ext' size prec, CostModelReqs size prec cost) => Core size prec -> ProgramState size -> m cost # | |
Arguments
| :: forall cost ext size prec. (ExpCostQ ext size prec, CostModelReqs size prec cost, EvalReqs size prec) | |
| => Program ext | program |
| -> [Value size] | args to main |
| -> FunInterpCtx size | external function interpretations |
| -> cost |
Expected quantum cost of the entire program (i.e. last function as entry-point)
costQ1 :: forall ext size prec cost m. (CostQ1 f, m ~ CostAnalysisMonad ext, CostQ ext size prec, CostModelReqs size prec cost) => f ext -> m cost #
expCostQ1 :: forall ext size prec cost m. (ExpCostQ1 f, m ~ CostAnalysisMonad ext, size ~ SizeType ext, prec ~ PrecType ext, ExpCostQ ext size prec, CostModelReqs size prec cost) => f ext -> EvalArgs f ext -> m cost #
Types
type CostModelReqs size prec cost = (CostModel cost, prec ~ PrecType cost, SizeToPrec size prec, Ord cost) #