traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Analysis.Cost.Quantum

Contents

Synopsis

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

Instances details
(UnitaryCostPrim prim size prec, QuantumHavocCostPrim prim size prec, CostReqs size prec) => CostQ (AnnFailProb (Primitive prim)) size prec # 
Instance details

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 # 
Instance details

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

Instances details
(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 # 
Instance details

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 # 
Instance details

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 #

expCostQProg #

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) #